[mutter] Add keyboard shortcut for Always on Top, bug 704831



commit 4373916d9db88c2b6d8b09190cc51e2cfc0f8de4
Author: Sindhu S <sindhus live in>
Date:   Thu Jul 25 00:25:23 2013 +0530

    Add keyboard shortcut for Always on Top, bug 704831

 src/core/keybindings.c |   21 +++++++++++++++++++++
 src/meta/prefs.h       |    2 ++
 2 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 868a982..e4355e1 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -3137,6 +3137,20 @@ handle_maximize_horizontally (MetaDisplay    *display,
     }
 }
 
+static void
+handle_always_on_top          (MetaDisplay    *display,
+                              MetaScreen     *screen,
+                              MetaWindow     *window,
+                              XIDeviceEvent  *event,
+                              MetaKeyBinding *binding,
+                              gpointer        dummy)
+{
+  if (window->wm_state_above == FALSE)
+    meta_window_make_above (window);
+  else
+    meta_window_unmake_above (window);
+}
+
 /* Move a window to a corner; to_bottom/to_right are FALSE for the
  * top or left edge, or TRUE for the bottom/right edge.  xchange/ychange
  * are FALSE if that dimension is not to be changed, TRUE otherwise.
@@ -4651,6 +4665,13 @@ init_builtin_key_bindings (MetaDisplay *display)
                           handle_maximize_horizontally, 0);
 
   add_builtin_keybinding (display,
+                          "always-on-top",
+                          common_keybindings,
+                          META_KEY_BINDING_PER_WINDOW,
+                          META_KEYBINDING_ACTION_ALWAYS_ON_TOP,
+                          handle_always_on_top, 0);
+
+  add_builtin_keybinding (display,
                           "move-to-corner-nw",
                           common_keybindings,
                           META_KEY_BINDING_PER_WINDOW,
diff --git a/src/meta/prefs.h b/src/meta/prefs.h
index e772e75..14fd5c7 100644
--- a/src/meta/prefs.h
+++ b/src/meta/prefs.h
@@ -248,6 +248,7 @@ void     meta_prefs_set_ignore_request_hide_titlebar (gboolean whether);
  * @META_KEYBINDING_ACTION_LOWER: FILLME 
  * @META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY: FILLME 
  * @META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY: FILLME 
+ * @META_KEYBINDING_ACTION_ALWAYS_ON_TOP: FILLME 
  * @META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW: FILLME 
  * @META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE: FILLME 
  * @META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW: FILLME 
@@ -339,6 +340,7 @@ typedef enum _MetaKeyBindingAction
   META_KEYBINDING_ACTION_RAISE,
   META_KEYBINDING_ACTION_LOWER,
   META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY,
+  META_KEYBINDING_ACTION_ALWAYS_ON_TOP,
   META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY,
   META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW,
   META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]