Updating branch refs/heads/0.6.x
         to df03e90a64c1883f54a240029a5ea2832c36771b (commit)
       from 46586bf9fa10c33273a9066341516825f45e2798 (commit)

commit df03e90a64c1883f54a240029a5ea2832c36771b
Author: Andre Ellguth <an...@ellguth.com>
Date:   Mon Jul 22 20:54:19 2013 +0200

    Some changes to the dockapp movement.

 panel-plugin/dockapp.c |   29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/panel-plugin/dockapp.c b/panel-plugin/dockapp.c
index 61c7ee9..40900b9 100644
--- a/panel-plugin/dockapp.c
+++ b/panel-plugin/dockapp.c
@@ -160,12 +160,12 @@ static DockappNode 
*wmdock_get_snapable_dockapp(DockappNode *dapp, gint *gluepos
        case XFCE_SCREEN_POSITION_NW_H:
        case XFCE_SCREEN_POSITION_N:
        case XFCE_SCREEN_POSITION_NE_H:
-               possible^= prim == TRUE ? GLUE_T : 0;
+               possible^= prim == TRUE ? (GLUE_T | GLUE_R) : 0;
                break;
        case XFCE_SCREEN_POSITION_SW_H:
        case XFCE_SCREEN_POSITION_S:
        case XFCE_SCREEN_POSITION_SE_H:
-               possible^= prim == TRUE ? GLUE_B : 0;
+               possible^= prim == TRUE ? (GLUE_B | GLUE_R): 0;
                break;
        case XFCE_SCREEN_POSITION_NW_V:
        case XFCE_SCREEN_POSITION_W:
@@ -231,7 +231,7 @@ static void wmdock_remove_anchors_tile_dummy()
 /**
  * Replace dummy DockApp with the moved DockApp.
  *
- * @param dapp Replacement Dockapp.
+ * @param dapp Replacement dockapp.
  * @return TRUE if dummy tile is replaced else FALSE.
  */
 static gboolean wmdock_replace_tile_dummy(DockappNode *dapp)
@@ -282,15 +282,19 @@ void wmdock_dockapp_paneloff_handler(GtkWidget *tile, 
GdkEvent *ev, DockappNode
        gint gluepos;
        GdkModifierType gdkmodtype;
 
-       debug("dockapp.c: Window event after: %d. (dapp: %s), dappOnMove: %s", 
ev->type, dapp->name,
+       debug("dockapp.c: Window event after: %d. (dapp: `%s'), dappOnMove: 
%s", ev->type, dapp->name,
                        dappOnMove ? "Yes": "No");
 
        switch(ev->type) {
-       case GDK_BUTTON_PRESS:
-       case GDK_KEY_PRESS:
-               dappOnMove = dapp;
-               break;
-       case GDK_CONFIGURE: /* Movement. */
+       case GDK_CONFIGURE:
+               gdk_window_get_pointer(tile->window, NULL, NULL, &gdkmodtype);
+               if(!dappOnMove && gdkmodtype & GDK_BUTTON1_MASK) {
+                       /* Movement. */
+                       debug("dockapp.c: Start dockapp movement (dapp: `%s')", 
dapp->name);
+                       dappOnMove = dapp;
+                       gtk_window_set_keep_above(GTK_WINDOW(dapp->tile), TRUE);
+               }
+
                if(dappOnMove) {
                        wmdock_remove_anchors_tile_dummy();
                        dappSnap = wmdock_get_snapable_dockapp(dapp, &gluepos);
@@ -327,6 +331,7 @@ void wmdock_dockapp_paneloff_handler(GtkWidget *tile, 
GdkEvent *ev, DockappNode
                if(dappDummy) {
                        gtk_widget_hide(dappDummy->tile);
                }
+               gtk_window_set_keep_above(GTK_WINDOW(dapp->tile), FALSE);
                dappOnMove = NULL;
 
                break;
@@ -335,9 +340,6 @@ void wmdock_dockapp_paneloff_handler(GtkWidget *tile, 
GdkEvent *ev, DockappNode
                        /* `in' is true if window window got the focus. */
                        g_list_foreach(wmdock->dapps, (GFunc) 
wmdock_dockapp_tofront, NULL);
                }
-               if(dappOnMove) {
-                       //wmdock_set_autoposition_dockapp(dapp, 
wmdock_get_parent_dockapp(dapp));
-               }
                break;
        case GDK_VISIBILITY_NOTIFY:
                wmdock_redraw_dockapp(dapp);
@@ -375,8 +377,7 @@ GtkWidget *wmdock_create_tile_dummy()
        gtk_window_set_skip_pager_hint(GTK_WINDOW(dummy), TRUE);
        gtk_window_set_opacity(GTK_WINDOW(dummy), 0.6);
        gtk_widget_set_size_request(dummy, DEFAULT_DOCKAPP_WIDTH, 
DEFAULT_DOCKAPP_HEIGHT);
-       gtk_window_set_keep_below(GTK_WINDOW(dummy), TRUE);
-       gtk_window_set_type_hint(GTK_WINDOW(dummy), GDK_WINDOW_TYPE_HINT_DND);
+//     gtk_window_set_type_hint(GTK_WINDOW(dummy), GDK_WINDOW_TYPE_HINT_DND);
 
        return (dummy);
 }
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to