[sawfish] edge-flip now works after resolution-change
- From: Christopher Bratusek <chrisb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sawfish] edge-flip now works after resolution-change
- Date: Fri, 13 Aug 2010 17:44:57 +0000 (UTC)
commit 0cfc6d22f4a1ae378098fb17adfceff281a83dc5
Author: Christopher Roy Bratusek <zanghar freenet de>
Date: Fri Aug 13 19:44:46 2010 +0200
edge-flip now works after resolution-change
ChangeLog | 5 +++++
lisp/sawfish/wm/ext/edge-flip.jl | 11 ++++++++++-
man/news.texi | 2 ++
src/flippers.c | 31 +++++++++++++++++++++++--------
4 files changed, 40 insertions(+), 9 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 4b97525..5aaedde 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-13 Christopher Bratusek <zanghar freenet de>
+ * src/flippers.c
+ * lisp/sawfish/wm/ext/edge-flip.jl: make edge-flipping work after
+ resolution-change
+
2010-08-13 Jeremy Hankins <nowan nowan org>
* lisp/sawfish/wm/viewport.jl: Fixed viewport init bug.
diff --git a/lisp/sawfish/wm/ext/edge-flip.jl b/lisp/sawfish/wm/ext/edge-flip.jl
index e4a66e5..4fa6a45 100644
--- a/lisp/sawfish/wm/ext/edge-flip.jl
+++ b/lisp/sawfish/wm/ext/edge-flip.jl
@@ -21,6 +21,7 @@
(define-structure sawfish.wm.ext.edge-flip
(export edge-flip-enable
+ restart-flippers
;; These three functions are not for API, but let's keep 'em.
edge-flip-for-edge
edge-flip-synthesize
@@ -82,11 +83,19 @@
(defvar after-edge-flip-hook '()
"Hook called immediately after edge-flipping.")
+ (define (restart-flippers)
+ (if edge-flip-enabled
+ (progn
+ (disable-flippers)
+ (create-flippers)
+ (enable-flippers))))
+
(define (edge-flip-enable)
(if (and edge-flip-enabled (not edge-flip-only-when-moving))
(progn
(require 'sawfish.wm.util.flippers)
- (enable-flippers))
+ (enable-flippers)
+ (add-hook 'randr-change-notify-hook restart-flippers))
(when (featurep 'sawfish.wm.util.flippers)
(disable-flippers))))
diff --git a/man/news.texi b/man/news.texi
index 3c2258a..b7d430e 100644
--- a/man/news.texi
+++ b/man/news.texi
@@ -66,6 +66,8 @@ Function @code{x-atom-name} now accepts all 32 bits. Previously only
@item Two variables are restored from obsoleteness declaration *
They're @code{workspace-boundary-mode} and @code{workspace-send-boundary-mode}.
+
+ item Edge-Flip now works after resolution-change. [Christopher Bratusek]
@end itemize
@item New Features
diff --git a/src/flippers.c b/src/flippers.c
index 9c5f9be..bdbbe65 100644
--- a/src/flippers.c
+++ b/src/flippers.c
@@ -96,7 +96,7 @@ event_handler (XEvent *ev)
}
}
-DEFUN("flippers-after-restacking", Fflippers_after_restacking,
+DEFUN("flippers-after-restacking", Fflippers_after_restacking,
Sflippers_after_restacking, (void), rep_Subr0)
{
/* Must keep edge windows raised so they always get the pointer */
@@ -126,6 +126,22 @@ create_flipper (Window parent, int x, int y, int width, int height)
return w;
}
+DEFUN("create-flippers", Fcreate_flippers,
+ Screate_flippers, (void), rep_Subr0)
+{
+
+ edge_left = create_flipper (root_window, 0, 0, 1, screen_height);
+ edge_right = create_flipper (root_window, screen_width - 1, 0,
+ 1, screen_height);
+
+ edge_top = create_flipper (root_window, 0, 0, screen_width, 1);
+ edge_bottom = create_flipper (root_window, 0, screen_height - 1,
+ screen_width, 1);
+
+ return Qt;
+
+}
+
repv
rep_dl_init (void)
{
@@ -134,6 +150,7 @@ rep_dl_init (void)
rep_ADD_SUBR(Senable_flippers);
rep_ADD_SUBR(Sdisable_flippers);
rep_ADD_SUBR(Sflippers_after_restacking);
+ rep_ADD_SUBR(Screate_flippers);
rep_INTERN (left);
rep_INTERN (right);
@@ -144,15 +161,13 @@ rep_dl_init (void)
if (!batch_mode_p ())
{
- edge_left = create_flipper (root_window, 0, 0, 1, screen_height);
- edge_right = create_flipper (root_window, screen_width - 1, 0,
- 1, screen_height);
- edge_top = create_flipper (root_window, 0, 0, screen_width, 1);
- edge_bottom = create_flipper (root_window, 0, screen_height - 1,
- screen_width, 1);
+
+ Fcreate_flippers();
add_hook (Qafter_restacking_hook, rep_VAL(&Sflippers_after_restacking));
- Fenable_flippers ();
+
+ Fenable_flippers();
+
}
return rep_pop_structure (tem);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]