Skip to content
  • Mariusz Glebocki's avatar
    Apply new window flags only when necessary · b88e677b
    Mariusz Glebocki authored
    Applying settings in Configure Konsole dialog was causing every Konsole
    window to be hidden and shown again. This was leading to information
    related to window management (window state, desktop, position/display,
    etc.) to be lost - windows were appearing on current display, current
    desktop, at new positions.
    
    The hide/show action is triggered by setting window flags. Only "remove
    window titlebar and frame" option really changes the flags, so it is
    pointless to set them again in other cases. Now, flags are not set when
    they are the same as current ones.
    
    Additionally, when "remove window titlebar and frame" option is changed
    and new flags are different, windows' positions and displays are
    restored. Other properties are still being lost.
    
    Test cases
    ----------
    
    * Open a few Konsole windows, put them on different desktops and
      at different positions.
    * Open Configure Konsole dialog, change any option different than
      "remove window titlebar and frame".
    * Apply
    
    **Before**
    
    Konsole windows have been moved to current display and current desktop.
    Their positions have changed. The configuration window has been placed
    under them.
    
    **After**
    
    The side effects mentioned above do not occur.
    
    ---
    
    * Open a few Konsole windows, put them on different desktops and at
      different positions.
    * Open Configure Konsole dialog, change "remove window titlebar and
      frame" option.
    * Apply
    
    **Before**
    
    Konsole windows' titlebar and frame became visible/invisible.
    The windows have been moved to current desktop. Both their positions
    and display have changed. The configuration window has been placed
    under them.
    
    **After**
    
    Like before, except windows' position and display - they are restored
    now.
    b88e677b