[Pkg-wmaker-commits] [wmaker] 14/40: Added 'head' parameter to wMaximizeWindow

Doug Torrance dtorrance-guest at moszumanska.debian.org
Sat Mar 11 13:08:18 UTC 2017


This is an automated email from the git hooks/post-receive script.

dtorrance-guest pushed a commit to branch upstream
in repository wmaker.

commit e2f85257280bc290e674391849bd9bc1d753b198
Author: gryf <gryf73 at gmail.com>
Date:   Tue Feb 7 21:05:14 2017 +0100

    Added 'head' parameter to wMaximizeWindow
    
    Additional 'head' parameter will help to select head (display) where
    window should be maximized.
---
 src/actions.c | 22 +++++-----------------
 src/actions.h |  2 +-
 src/event.c   |  3 ++-
 src/window.c  |  2 +-
 src/winmenu.c |  5 +++--
 src/wmspec.c  | 15 ++++++++++-----
 6 files changed, 22 insertions(+), 27 deletions(-)

diff --git a/src/actions.c b/src/actions.c
index 4bc3e07..b2a2bbb 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -359,7 +359,7 @@ void update_saved_geometry(WWindow *wwin)
 		save_old_geometry(wwin, SAVE_GEOMETRY_X);
 }
 
-void wMaximizeWindow(WWindow *wwin, int directions)
+void wMaximizeWindow(WWindow *wwin, int directions, int head)
 {
 	unsigned int new_width, new_height, half_scr_width, half_scr_height;
 	int new_x = 0;
@@ -393,20 +393,7 @@ void wMaximizeWindow(WWindow *wwin, int directions)
 	totalArea.y2 = scr->scr_height;
 	totalArea.x1 = 0;
 	totalArea.y1 = 0;
-	usableArea = totalArea;
-
-	if (!(directions & MAX_IGNORE_XINERAMA)) {
-		WScreen *scr = wwin->screen_ptr;
-		int head;
-
-		if (directions & MAX_KEYBOARD)
-			head = wGetHeadForWindow(wwin);
-		else
-			head = wGetHeadForPointerLocation(scr);
-
-		usableArea = wGetUsableAreaForHead(scr, head, &totalArea, True);
-	}
-
+	usableArea = wGetUsableAreaForHead(scr, head, &totalArea, True);
 
 	/* Only save directions, not kbd or xinerama hints */
 	directions &= (MAX_HORIZONTAL | MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS);
@@ -502,12 +489,13 @@ void handleMaximize(WWindow *wwin, int directions)
 	int requested = directions & (MAX_HORIZONTAL | MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS);
 	int effective = requested ^ current;
 	int flags = directions & ~requested;
+	int head = wGetHeadForWindow(wwin);
 
 	if (!effective) {
 		/* allow wMaximizeWindow to restore the Maximusized size */
 		if ((wwin->flags.old_maximized & MAX_MAXIMUS) &&
 				!(requested & MAX_MAXIMUS))
-			wMaximizeWindow(wwin, MAX_MAXIMUS | flags);
+			wMaximizeWindow(wwin, MAX_MAXIMUS | flags, head);
 		else
 			wUnmaximizeWindow(wwin);
 	/* these alone mean vertical|horizontal toggle */
@@ -557,7 +545,7 @@ void handleMaximize(WWindow *wwin, int directions)
 				effective &= ~(MAX_TOPHALF | MAX_BOTTOMHALF);
 			effective &= ~MAX_MAXIMUS;
 		}
-		wMaximizeWindow(wwin, effective | flags);
+		wMaximizeWindow(wwin, effective | flags, head);
 	}
 }
 
diff --git a/src/actions.h b/src/actions.h
index 8390e49..a15cf48 100644
--- a/src/actions.h
+++ b/src/actions.h
@@ -57,7 +57,7 @@ void wSelectWindows(WScreen *scr, XEvent *ev);
 void wSelectWindow(WWindow *wwin, Bool flag);
 void wUnselectWindows(WScreen *scr);
 
-void wMaximizeWindow(WWindow *wwin, int directions);
+void wMaximizeWindow(WWindow *wwin, int directions, int head);
 void wUnmaximizeWindow(WWindow *wwin);
 void handleMaximize(WWindow *wwin, int directions);
 
diff --git a/src/event.c b/src/event.c
index 0b394e7..5145e95 100644
--- a/src/event.c
+++ b/src/event.c
@@ -632,7 +632,8 @@ static void handleMapRequest(XEvent * ev)
 	if (wwin) {
 		wClientSetState(wwin, NormalState, None);
 		if (wwin->flags.maximized) {
-			wMaximizeWindow(wwin, wwin->flags.maximized);
+			wMaximizeWindow(wwin, wwin->flags.maximized,
+					wGetHeadForWindow(wwin));
 		}
 		if (wwin->flags.shaded) {
 			wwin->flags.shaded = 0;
diff --git a/src/window.c b/src/window.c
index 801d7b6..d1e351e 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2853,7 +2853,7 @@ static void titlebarDblClick(WCoreWindow *sender, void *data, XEvent *event)
 				int ndir = dir ^ wwin->flags.maximized;
 
 				if (ndir != 0)
-					wMaximizeWindow(wwin, ndir);
+					wMaximizeWindow(wwin, ndir, wGetHeadForWindow(wwin));
 				else
 					wUnmaximizeWindow(wwin);
 			}
diff --git a/src/winmenu.c b/src/winmenu.c
index 2aa3187..af7fe62 100644
--- a/src/winmenu.c
+++ b/src/winmenu.c
@@ -169,7 +169,7 @@ static void execWindowOptionCommand(WMenu * menu, WMenuEntry * entry)
 static void execMaximizeCommand(WMenu * menu, WMenuEntry * entry)
 {
 	WWindow *wwin = (WWindow *) entry->clientdata;
-	
+
 	/* Parameter not used, but tell the compiler that it is ok */
 	(void) menu;
 
@@ -277,7 +277,8 @@ static void execMenuCommand(WMenu * menu, WMenuEntry * entry)
 		if (wwin->flags.maximized)
 			wUnmaximizeWindow(wwin);
 		else
-			wMaximizeWindow(wwin, MAX_VERTICAL | MAX_HORIZONTAL);
+			wMaximizeWindow(wwin, MAX_VERTICAL | MAX_HORIZONTAL,
+					wGetHeadForWindow(wwin));
 		break;
 
 	case MC_SHADE:
diff --git a/src/wmspec.c b/src/wmspec.c
index 0bfc864..75fcdde 100644
--- a/src/wmspec.c
+++ b/src/wmspec.c
@@ -1120,9 +1120,11 @@ static void doStateAtom(WWindow *wwin, Atom state, int set, Bool init)
 			wwin->flags.maximized |= (set ? MAX_VERTICAL : 0);
 		} else {
 			if (set)
-				wMaximizeWindow(wwin, wwin->flags.maximized | MAX_VERTICAL);
+				wMaximizeWindow(wwin, wwin->flags.maximized | MAX_VERTICAL,
+						wGetHeadForWindow(wwin));
 			else
-				wMaximizeWindow(wwin, wwin->flags.maximized & ~MAX_VERTICAL);
+				wMaximizeWindow(wwin, wwin->flags.maximized & ~MAX_VERTICAL,
+						wGetHeadForWindow(wwin));
 		}
 	} else if (state == net_wm_state_maximized_horz) {
 		if (set == _NET_WM_STATE_TOGGLE)
@@ -1132,9 +1134,11 @@ static void doStateAtom(WWindow *wwin, Atom state, int set, Bool init)
 			wwin->flags.maximized |= (set ? MAX_HORIZONTAL : 0);
 		} else {
 			if (set)
-				wMaximizeWindow(wwin, wwin->flags.maximized | MAX_HORIZONTAL);
+				wMaximizeWindow(wwin, wwin->flags.maximized | MAX_HORIZONTAL,
+						wGetHeadForWindow(wwin));
 			else
-				wMaximizeWindow(wwin, wwin->flags.maximized & ~MAX_HORIZONTAL);
+				wMaximizeWindow(wwin, wwin->flags.maximized & ~MAX_HORIZONTAL,
+						wGetHeadForWindow(wwin));
 		}
 	} else if (state == net_wm_state_hidden) {
 		if (set == _NET_WM_STATE_TOGGLE)
@@ -1623,7 +1627,8 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
 				wwin->flags.maximized = maximized;
 				wUnmaximizeWindow(wwin);
 			} else {
-				wMaximizeWindow(wwin, wwin->flags.maximized);
+				wMaximizeWindow(wwin, wwin->flags.maximized, 
+						wGetHeadForWindow(wwin));
 			}
 		}
 		updateStateHint(wwin, False, False);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmaker.git



More information about the Pkg-wmaker-commits mailing list