]> Dogcows Code - chaz/openbox/blobdiff - openbox/moveresize.c
disable the "Go there" menu entry when its the current desktop
[chaz/openbox] / openbox / moveresize.c
index ba10af4b3adb4cd2faa8a088d0b5fb9546a90c6f..2344e86ad77eb18bb9e4b4fa6fe17e321bfec434 100644 (file)
@@ -1,4 +1,4 @@
-/* -*- indent-tabs-mode: t; tab-width: 4; c-basic-offset: 4; -*-
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    moveresize.c for the Openbox window manager
    Copyright (c) 2003        Ben Jansens
@@ -38,15 +38,15 @@ ObClient *moveresize_client = NULL;
 
 static gboolean moving = FALSE; /* TRUE - moving, FALSE - resizing */
 
-static int start_x, start_y, start_cx, start_cy, start_cw, start_ch;
-static int cur_x, cur_y;
+static gint start_x, start_y, start_cx, start_cy, start_cw, start_ch;
+static gint cur_x, cur_y;
 static guint button;
 static guint32 corner;
 static ObCorner lockcorner;
 
 static ObPopup *popup = NULL;
 
-static void client_dest(gpointer client)
+static void client_dest(ObClient *client, gpointer data)
 {
     if (moveresize_client == client)
         moveresize_end(TRUE);    
@@ -57,7 +57,7 @@ void moveresize_startup(gboolean reconfig)
     popup = popup_new(FALSE);
 
     if (!reconfig)
-        client_add_destructor(client_dest);
+        client_add_destructor(client_dest, NULL);
 }
 
 void moveresize_shutdown(gboolean reconfig)
@@ -72,9 +72,9 @@ void moveresize_shutdown(gboolean reconfig)
     popup = NULL;
 }
 
-static void popup_coords(ObClient *c, char *format, int a, int b)
+static void popup_coords(ObClient *c, gchar *format, gint a, gint b)
 {
-    char *text;
+    gchar *text;
 
     text = g_strdup_printf(format, a, b);
     popup_position(popup, CenterGravity,
@@ -86,11 +86,17 @@ static void popup_coords(ObClient *c, char *format, int a, int b)
     g_free(text);
 }
 
-void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr)
+void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr)
 {
     ObCursor cur;
 
-    if (moveresize_in_progress || !c->frame->visible)
+    moving = (cnr == prop_atoms.net_wm_moveresize_move ||
+              cnr == prop_atoms.net_wm_moveresize_move_keyboard);
+
+    if (moveresize_in_progress || !c->frame->visible ||
+        !(moving ?
+          (c->functions & OB_CLIENT_FUNC_MOVE) :
+          (c->functions & OB_CLIENT_FUNC_RESIZE)))
         return;
 
     moveresize_client = c;
@@ -116,15 +122,12 @@ void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr)
                      c->area.width / 2, c->area.height / 2);
     */
 
-    if (corner == prop_atoms.net_wm_moveresize_move ||
-        corner == prop_atoms.net_wm_moveresize_move_keyboard) {
+    if (moving) {
         cur_x = start_cx;
         cur_y = start_cy;
-        moving = TRUE;
     } else {
         cur_x = start_cw;
         cur_y = start_ch;
-        moving = FALSE;
     }
 
     moveresize_in_progress = TRUE;
@@ -294,7 +297,7 @@ void moveresize_event(XEvent *e)
             moveresize_end(FALSE);
         else {
             if (corner == prop_atoms.net_wm_moveresize_size_keyboard) {
-                int dx = 0, dy = 0, ox = cur_x, oy = cur_y;
+                gint dx = 0, dy = 0, ox = cur_x, oy = cur_y;
 
                 if (e->xkey.keycode == ob_keycode(OB_KEY_RIGHT))
                     dx = MAX(4, moveresize_client->size_inc.width);
@@ -326,8 +329,8 @@ void moveresize_event(XEvent *e)
                 start_x += dx - (cur_x - ox);
                 start_y += dy - (cur_y - oy);
             } else if (corner == prop_atoms.net_wm_moveresize_move_keyboard) {
-                int dx = 0, dy = 0, ox = cur_x, oy = cur_y;
-                int opx, px, opy, py;
+                gint dx = 0, dy = 0, ox = cur_x, oy = cur_y;
+                gint opx, px, opy, py;
 
                 if (e->xkey.keycode == ob_keycode(OB_KEY_RIGHT))
                     dx = 4;
This page took 0.025236 seconds and 4 git commands to generate.