@@ -379,9 +379,12 @@ static void _setSupportedHints(WScreen *scr)
379379 atom [i ++ ] = net_workarea ;
380380 atom [i ++ ] = net_supporting_wm_check ;
381381 atom [i ++ ] = net_showing_desktop ;
382+
382383#if 0
383- atom [i ++ ] = net_wm_moveresize ;
384+ atom [i ++ ] = net_moveresize_window ;
384385#endif
386+ atom [i ++ ] = net_wm_moveresize ;
387+
385388 atom [i ++ ] = net_request_frame_extents ;
386389 atom [i ++ ] = net_wm_desktop ;
387390 atom [i ++ ] = net_wm_window_type ;
@@ -1689,6 +1692,7 @@ static void _handleDesktopNames(WScreen *scr)
16891692
16901693Bool wNETWMProcessClientMessage (XClientMessageEvent * event )
16911694{
1695+ static unsigned long last_serial = 0 ;
16921696 WScreen * scr ;
16931697 WWindow * wwin ;
16941698
@@ -1844,11 +1848,15 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
18441848 // data.l[2] = direction
18451849 // data.l[3] = button
18461850 // data.l[4] = source indication
1847- fprintf (
1848- stderr ,
1849- "%s: _NET_WM_MOVERESIZE: %li, %li | direction: %li, button: %li, source direction: %li\n" ,
1850- __func__ , event -> data .l [0 ], event -> data .l [1 ], event -> data .l [2 ], event -> data .l [3 ],
1851- event -> data .l [4 ]);
1851+ if (last_serial == event -> serial ) {
1852+ return False ;
1853+ }
1854+ last_serial = event -> serial ;
1855+ fprintf (stderr ,
1856+ "%s: _NET_WM_MOVERESIZE: %li, %li | direction: %li, button: %li, source direction: %li "
1857+ "serial: %lu event type: %i\n" ,
1858+ __func__ , event -> data .l [0 ], event -> data .l [1 ], event -> data .l [2 ], event -> data .l [3 ],
1859+ event -> data .l [4 ], event -> serial , event -> type );
18521860
18531861 WWindow * wwin = NULL ;
18541862 XEvent x_event ;
@@ -1870,6 +1878,7 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
18701878 GrabModeAsync , None , None , CurrentTime ) == GrabSuccess ) {
18711879 wMouseMoveWindow (wwin , & x_event );
18721880 XUngrabPointer (dpy , CurrentTime );
1881+ fprintf (stderr , "%s: _NET_WM_MOVERESIZE_MOVE finished\n" , __func__ );
18731882 } else {
18741883 fprintf (stderr , "%s: window is not found for _NET_WM_MOVERESIZE_MOVE!\n" , __func__ );
18751884 }
@@ -1885,6 +1894,7 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
18851894 case _NET_WM_MOVERESIZE_SIZE_LEFT :
18861895 break ;
18871896 }
1897+ return True ;
18881898 }
18891899
18901900 return False ;
0 commit comments