Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. From 4beb792e846212d6eac1b7f7bfe49d91128bbe43 Mon Sep 17 00:00:00 2001
  2. From: Yang Keao <keao.yang@yahoo.com>
  3. Date: Mon, 18 Mar 2019 23:12:01 +0800
  4. Subject: [PATCH 1/2] Map window when shake cursor
  5.  
  6. ---
  7. dwm.c | 26 +++++++++++++++++++++++++-
  8. 1 file changed, 25 insertions(+), 1 deletion(-)
  9.  
  10. diff --git a/dwm.c b/dwm.c
  11. index 0362114..bc7cab6 100644
  12. --- a/dwm.c
  13. +++ b/dwm.c
  14. @@ -234,6 +234,9 @@ static int xerrordummy(Display *dpy, XErrorEvent *ee);
  15. static int xerrorstart(Display *dpy, XErrorEvent *ee);
  16. static void zoom(const Arg *arg);
  17.  
  18. +static int previous_motion_x = 0;
  19. +static int previous_motion_y = 0;
  20. +
  21. /* variables */
  22. static const char broken[] = "broken";
  23. static char stext[256];
  24. @@ -266,6 +269,8 @@ static Display *dpy;
  25. static Drw *drw;
  26. static Monitor *mons, *selmon;
  27. static Window root;
  28. +static XSetWindowAttributes cur_attr;
  29. +static Window cur_w;
  30.  
  31. /* configuration, allows nested code to access above variables */
  32. #include "config.h"
  33. @@ -1070,7 +1075,7 @@ manage(Window w, XWindowAttributes *wa)
  34. updatewindowtype(c);
  35. updatesizehints(c);
  36. updatewmhints(c);
  37. - XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
  38. + XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask|PointerMotionMask);
  39. grabbuttons(c, 0);
  40. if (!c->isfloating)
  41. c->isfloating = c->oldstate = trans != None || c->isfixed;
  42. @@ -1135,7 +1140,20 @@ motionnotify(XEvent *e)
  43. static Monitor *mon = NULL;
  44. Monitor *m;
  45. XMotionEvent *ev = &e->xmotion;
  46. +
  47. + if (ev->x_root - previous_motion_x + ev->y_root - previous_motion_y > 30) {
  48. + printf("Motion %d %d w: %d\n", ev->x_root, ev->y_root, cur_w);
  49. + XSetWindowAttributes wa;
  50. +
  51. + XMoveWindow(dpy, cur_w, ev->x_root - cur_w_size / 2, ev->y_root - cur_w_size / 2);
  52. + XMapWindow(dpy, cur_w);
  53. + } else {
  54. + XSetWindowAttributes wa;
  55.  
  56. + XUnmapWindow(dpy, cur_w);
  57. + }
  58. + previous_motion_x = ev->x_root;
  59. + previous_motion_y = ev->y_root;
  60. if (ev->window != root)
  61. return;
  62. if ((m = recttomon(ev->x_root, ev->y_root, 1, 1)) != mon && mon) {
  63. @@ -1601,6 +1619,12 @@ setup(void)
  64. XSelectInput(dpy, root, wa.event_mask);
  65. grabkeys();
  66. focus(NULL);
  67. +
  68. + cur_attr.background_pixel = XWhitePixel(dpy, screen);
  69. + cur_w = XCreateWindow(dpy, root,
  70. + 0, 0, cur_w_size, cur_w_size, 5, DefaultDepth(dpy, screen), InputOutput,
  71. + DefaultVisual(dpy, screen) ,CWBackPixel, &cur_attr);
  72. + XSelectInput(dpy, cur_w, ExposureMask | KeyPressMask);
  73. }
  74.  
  75. void
  76. --
  77. 2.19.2
  78.  
  79.  
  80. From 4b31029cb4fc840b11c6fd4d6e87d31da73dd8f1 Mon Sep 17 00:00:00 2001
  81. From: Yang Keao <keao.yang@yahoo.com>
  82. Date: Mon, 18 Mar 2019 23:12:49 +0800
  83. Subject: [PATCH 2/2] remove log
  84.  
  85. ---
  86. dwm.c | 1 -
  87. 1 file changed, 1 deletion(-)
  88.  
  89. diff --git a/dwm.c b/dwm.c
  90. index bc7cab6..7b50338 100644
  91. --- a/dwm.c
  92. +++ b/dwm.c
  93. @@ -1142,7 +1142,6 @@ motionnotify(XEvent *e)
  94. XMotionEvent *ev = &e->xmotion;
  95.  
  96. if (ev->x_root - previous_motion_x + ev->y_root - previous_motion_y > 30) {
  97. - printf("Motion %d %d w: %d\n", ev->x_root, ev->y_root, cur_w);
  98. XSetWindowAttributes wa;
  99.  
  100. XMoveWindow(dpy, cur_w, ev->x_root - cur_w_size / 2, ev->y_root - cur_w_size / 2);
  101. --
  102. 2.19.2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement