On Friday 18 September 2009, Marco Martin wrote: > On Friday 18 September 2009, Marco Martin wrote: > > On Friday 18 September 2009, Lucas Murray wrote: > > > On Fri, Sep 18, 2009 at 2:31 AM, Marco Martin <notm...@gmail.com> wrote: > > > > hi all, > > > > one of the things we need for the plasma netbook shell is to have > > > > windows fullscreen most of the time, so be maximized and without > > > > borders (title and controls to unmaximize and close are directly into > > > > the panel) but keeping the possibility to have not maximized windows > > > > with normal borders as usual. a while ago talking with martin we had > > > > the idea to use decoration, directly in kdecoration, so here it is.. > > > > > > This is not the correct way to go about it. You will want to use > > > fullscreen windows and not maximisation. No point hacking maximisation > > > to act identical to an already-existing functionality. > > > > > > > anoter idea could be modifying window rules to match also geometry, > > > > maximized state etc.. > > > > > > This is probably better. > > > > i tried expanding the window rules, but it seems that rules are stored > > per- client and only the ones that match, so a match of a thing that > > continuosly changes like the maximize state can't work. > > it could perhaps be solved by being able to access the client in > > WindowRules::check##rule and return a value that depends from the match, > > but doesn't seem particularly feasible? > > > > i think the best way is still in kcommondecoration (custom decoration > > would still be able to access the config option and manage it by > > temselves) > > > > another plasce could be in the Client class, in changeMaximize(), but > > doesn't seem to be possible to access the configuration from there? > > this is done in the Client class, the border should get actually destroyed > and recreated and is where the patch is smaller :)
now the config option is managed in Options, a bit better > > > > another thing we need is to start windows always maximized, for that > > > > using a rule could be a good idea, however a problem is that we > > > > should maximize only windows with a decoration, because plasma popups > > > > are of window type (not dialog, yeah, bad, but kinda needed for drag > > > > and drop of extenders) > > > > > > KWin already has a "maximizing" placement algorithm. It can be enabled > > > in System Settings -> Window Behavior -> Advanced -> Placement. -- Marco Martin
Index: options.h =================================================================== --- options.h (revision 1023932) +++ options.h (working copy) @@ -310,6 +310,8 @@ */ bool electricBorderTiling() const { return electric_border_tiling; } + bool borderlessMaximizedWindows() const { return borderless_maximized_windows; } + bool topMenuEnabled() const { return topmenus; } bool desktopTopMenu() const { return desktop_topmenu; } @@ -376,6 +378,7 @@ int electric_border_pushback_pixels; bool electric_border_maximize; bool electric_border_tiling; + bool borderless_maximized_windows; bool show_geometry_tip; bool topmenus; bool desktop_topmenu; Index: options.cpp =================================================================== --- options.cpp (revision 1023932) +++ options.cpp (working copy) @@ -193,6 +193,8 @@ config=KConfigGroup(_config,"Compositing"); refreshRate = config.readEntry( "RefreshRate", 0 ); + borderless_maximized_windows = config.readEntry( "BorderlessMaximizedWindows", false ); + // Read button tooltip animation effect from kdeglobals // Since we want to allow users to enable window decoration tooltips // and not kstyle tooltips and vise-versa, we don't read the Index: geometry.cpp =================================================================== --- geometry.cpp (revision 1023932) +++ geometry.cpp (working copy) @@ -2218,6 +2218,9 @@ QRect clientArea = workspace()->clientArea( MaximizeArea, this ); + if( options->borderlessMaximizedWindows() ) + setNoBorder(max_mode == MaximizeFull); + // save sizes for restoring, if maximalizing if( !adjust && !( y() == clientArea.top() && height() == clientArea.height())) {
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel