This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project wmaker-crm.git.
The branch, next has been updated via 1cabdcfb85945967edccda1211a16d5d08811347 (commit) via b478049eac876faede3f96d8f9efd49f4729f58a (commit) from 451cc64132837a324accf1f1304a6aac70615ada (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/wmaker-crm.git/commit/1cabdcfb85945967edccda1211a16d5d08811347 commit 1cabdcfb85945967edccda1211a16d5d08811347 Author: Doug Torrance <dtorra...@monmouthcollege.edu> Date: Wed Sep 24 23:49:08 2014 -0500 NEWS: Add note about dragging maximized windows. diff --git a/NEWS b/NEWS index ce8b86ee..f83ae0bc 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,34 @@ dragging windows" is selected under "Workspace Preferences" in WPrefs.app, or if "DontLinkWorkspaces = NO" in ~/GNUstep/Defaults/WindowMaker, as this feature also involves dragging a window to one side of the screen. +Dragging maximized windows +-------------------------- +You can now control the behavior when a maximized window is dragged by setting +the "DragMaximizedWindow" option in ~/GNUstep/Defaults/WindowMaker or by +selecting an option from the "When dragging a maximized window..." pop-up button +under "Window Handling Preferences" in WPrefs.app. + +There are four choices: +* "Move" ("...change position (normal behavior)" in WPrefs.app) is the default + and traditional behavior. A maximized window is moved when dragged and + remains maximized, i.e., it keeps its maximized geometry and can later be + unmaximized. +* "RestoreGeometry" ("...restore unmaximized geometry") is the behavior standard + in desktop environments like GNOME, Cinnamon, and Unity. A maximized window + is moved when dragged and is completely unmaximized, i.e., its unmaximized + geometry is restored. +* "Unmaximize" ("...consider the window unmaximized") causes a maximized window + to be moved when dragged and remains partially maximized, i.e., it keeps its + maximized geometry, but is consider to be unmaximized. In particular, it can + be immediately re-maximized. +* "NoMove" ("...do not move the window") prevents a maximized window from being + moved when dragged. + +Note that, to accomodate this option in the "Window Handling Preferences" tab in +WPrefs.app, the option to "Open dialogs in the same workspace as their owners" +(which sets the "OpenTransientOnOwnerWorkspace" option from +~/GNUstep/Defaults/WindowMaker) has been moved to "Expert User Preferences". + --- 0.95.6 More image format supported http://repo.or.cz/w/wmaker-crm.git/commit/b478049eac876faede3f96d8f9efd49f4729f58a commit b478049eac876faede3f96d8f9efd49f4729f58a Author: Doug Torrance <dtorra...@monmouthcollege.edu> Date: Wed Sep 24 22:30:52 2014 -0500 WPrefs.app: Add ability to set behavior when dragging a maximized window. You can now set the behavior when dragging a maximized window, i.e., the "DragMaximizedWindow" option from ~/GNUstep/Defaults/WindowMaker, from the "Window Handling" tab of WPrefs.app. Note that to make room for the pop-up button required to set this option, the switch button to set the "OpenTransientOnOwnerWorkspace" option has been moved to the "Expert User Preferences" tab and the "Edge Resistance" frame has been made slightly smaller. diff --git a/WPrefs.app/Expert.c b/WPrefs.app/Expert.c index 888ccaa1..2f6cb7fc 100644 --- a/WPrefs.app/Expert.c +++ b/WPrefs.app/Expert.c @@ -84,8 +84,8 @@ static const struct { { N_("Enable window snapping."), /* default: */ False, OPTION_WMAKER, "WindowSnapping" }, - { N_("Return maximized windows to original geometry when moved."), - /* default: */ False, OPTION_WMAKER, "UnmaximizeOnMove" } + { N_("Open dialogs in the same workspace as their owners."), + /* default: */ False, OPTION_WMAKER, "OpenTransientOnOwnerWorkspace" } }; diff --git a/WPrefs.app/WindowHandling.c b/WPrefs.app/WindowHandling.c index 0976b17d..4a8f1bc2 100644 --- a/WPrefs.app/WindowHandling.c +++ b/WPrefs.app/WindowHandling.c @@ -61,8 +61,8 @@ typedef struct _Panel { WMButton *opaqresizeB; WMButton *opaqkeybB; - WMFrame *tranF; - WMButton *tranB; + WMFrame *dragmaxF; + WMPopUpButton *dragmaxP; } _Panel; #define ICON_FILE "whandling" @@ -77,7 +77,7 @@ typedef struct _Panel { #define THUMB_SIZE 16 -static const char *placements[] = { +static const char *const placements[] = { "auto", "random", "manual", @@ -86,6 +86,13 @@ static const char *placements[] = { "center" }; +static const char *const dragMaximizedWindowOptions[] = { + "Move", + "RestoreGeometry", + "Unmaximize", + "NoMove" +}; + static void sliderCallback(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; @@ -168,6 +175,25 @@ static int getPlacement(const char *str) return 0; } +static int getDragMaximizedWindow(const char *str) +{ + if (!str) + return 0; + + if (strcasecmp(str, "Move") == 0) + return 0; + else if (strcasecmp(str, "RestoreGeometry") == 0) + return 1; + else if (strcasecmp(str, "Unmaximize") == 0) + return 2; + else if (strcasecmp(str, "NoMove") == 0) + return 3; + else + wwarning(_("bad option value %s in WindowPlacement. Using default value"), str); + return 0; +} + + static void showData(_Panel * panel) { char *str; @@ -200,12 +226,13 @@ static void showData(_Panel * panel) WMSetSliderValue(panel->resS, x); resistanceCallback(NULL, panel); + str = GetStringForKey("DragMaximizedWindow"); + WMSetPopUpButtonSelectedItem(panel->dragmaxP, getDragMaximizedWindow(str)); + x = GetIntegerForKey("ResizeIncrement"); WMSetSliderValue(panel->resizeS, x); resizeCallback(NULL, panel); - WMSetButtonSelected(panel->tranB, GetBoolForKey("OpenTransientOnOwnerWorkspace")); - WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove")); WMSetButtonSelected(panel->opaqresizeB, GetBoolForKey("OpaqueResize")); WMSetButtonSelected(panel->opaqkeybB, GetBoolForKey("OpaqueMoveResizeKeyboard")); @@ -232,8 +259,6 @@ static void storeData(_Panel * panel) SetBoolForKey(WMGetButtonSelected(panel->opaqresizeB), "OpaqueResize"); SetBoolForKey(WMGetButtonSelected(panel->opaqkeybB), "OpaqueMoveResizeKeyboard"); - SetBoolForKey(WMGetButtonSelected(panel->tranB), "OpenTransientOnOwnerWorkspace"); - SetStringForKey(placements[WMGetPopUpButtonSelectedItem(panel->placP)], "WindowPlacement"); sprintf(buf, "%i", WMGetSliderValue(panel->hsli)); x = WMCreatePLString(buf); @@ -246,6 +271,9 @@ static void storeData(_Panel * panel) SetIntegerForKey(WMGetSliderValue(panel->resS), "EdgeResistance"); + SetStringForKey(dragMaximizedWindowOptions[WMGetPopUpButtonSelectedItem(panel->dragmaxP)], + "DragMaximizedWindow"); + SetIntegerForKey(WMGetSliderValue(panel->resizeS), "ResizeIncrement"); SetBoolForKey(WMGetButtonSelected(panel->resrB), "Attraction"); @@ -463,7 +491,7 @@ static void createPanel(Panel * p) /**************** Edge Resistance ****************/ panel->resF = WMCreateFrame(panel->box); - WMResizeWidget(panel->resF, 289, 50); + WMResizeWidget(panel->resF, 289, 47); WMMoveWidget(panel->resF, 8, 125); WMSetFrameTitle(panel->resF, _("Edge Resistance")); @@ -474,7 +502,7 @@ static void createPanel(Panel * p) panel->resS = WMCreateSlider(panel->resF); WMResizeWidget(panel->resS, 80, 15); - WMMoveWidget(panel->resS, 10, 22); + WMMoveWidget(panel->resS, 10, 20); WMSetSliderMinValue(panel->resS, 0); WMSetSliderMaxValue(panel->resS, 80); WMSetSliderAction(panel->resS, resistanceCallback, panel); @@ -496,17 +524,21 @@ static void createPanel(Panel * p) WMMapSubwidgets(panel->resF); - /**************** Transients on Parent Workspace ****************/ - panel->tranF = WMCreateFrame(panel->box); - WMResizeWidget(panel->tranF, 289, 40); - WMMoveWidget(panel->tranF, 8, 185); - - panel->tranB = WMCreateSwitchButton(panel->tranF); - WMMoveWidget(panel->tranB, 10, 5); - WMResizeWidget(panel->tranB, 250, 30); - WMSetButtonText(panel->tranB, _("Open dialogs in the same workspace as their owners")); - - WMMapSubwidgets(panel->tranF); + /**************** Dragging a Maximized Window ****************/ + panel->dragmaxF = WMCreateFrame(panel->box); + WMResizeWidget(panel->dragmaxF, 289, 46); + WMMoveWidget(panel->dragmaxF, 8, 179); + WMSetFrameTitle(panel->dragmaxF, _("When dragging a maximized window...")); + + panel->dragmaxP = WMCreatePopUpButton(panel->dragmaxF); + WMResizeWidget(panel->dragmaxP, 269, 20); + WMMoveWidget(panel->dragmaxP, 10, 20); + WMAddPopUpButtonItem(panel->dragmaxP, _("...change position (normal behavior)")); + WMAddPopUpButtonItem(panel->dragmaxP, _("...restore unmaximized geometry")); + WMAddPopUpButtonItem(panel->dragmaxP, _("...consider the window unmaximized")); + WMAddPopUpButtonItem(panel->dragmaxP, _("...do not move the window")); + + WMMapSubwidgets(panel->dragmaxF); WMRealizeWidget(panel->box); WMMapSubwidgets(panel->box); ----------------------------------------------------------------------- Summary of changes: NEWS | 28 ++++++++++++++++ WPrefs.app/Expert.c | 4 +- WPrefs.app/WindowHandling.c | 72 +++++++++++++++++++++++++++++++------------ 3 files changed, 82 insertions(+), 22 deletions(-) repo.or.cz automatic notification. Contact project admin crma...@gmail.com if you want to unsubscribe, or site admin ad...@repo.or.cz if you receive no reply. -- wmaker-crm.git ("The Window Maker window manager") -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.