kwo pushed a commit to branch master.

http://git.enlightenment.org/legacy/imlib2.git/commit/?id=0497d2bb0cc4ee6552ae65b58e113f76af8d24d7

commit 0497d2bb0cc4ee6552ae65b58e113f76af8d24d7
Author: Kim Woelders <k...@woelders.dk>
Date:   Sun Mar 11 08:51:54 2018 +0100

    imlib2_view: Move property stuff to separate file
    
    May reuse it elsewhere.
---
 src/bin/Makefile.am   |  2 +-
 src/bin/imlib2_view.c | 11 +++--------
 src/bin/props.c       | 25 +++++++++++++++++++++++++
 src/bin/props.h       | 16 ++++++++++++++++
 4 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
index 4833794..3bbb8c1 100644
--- a/src/bin/Makefile.am
+++ b/src/bin/Makefile.am
@@ -36,7 +36,7 @@ imlib2_poly_LDADD   = $(top_builddir)/src/lib/libImlib2.la 
-lX11
 imlib2_colorspace_SOURCES = imlib2_colorspace.c
 imlib2_colorspace_LDADD   = $(top_builddir)/src/lib/libImlib2.la -lX11
 
-imlib2_view_SOURCES = imlib2_view.c
+imlib2_view_SOURCES = imlib2_view.c props.c props.h
 imlib2_view_LDADD   = $(top_builddir)/src/lib/libImlib2.la -lX11
 
 imlib2_grab_SOURCES = imlib2_grab.c
diff --git a/src/bin/imlib2_view.c b/src/bin/imlib2_view.c
index 685efde..ea0ba8e 100644
--- a/src/bin/imlib2_view.c
+++ b/src/bin/imlib2_view.c
@@ -8,6 +8,7 @@
 #include <unistd.h>
 
 #include "Imlib2.h"
+#include "props.h"
 
 Display            *disp;
 Window              win;
@@ -22,9 +23,6 @@ static char         progress_granularity = 10;
 static char         progress_print = 0;
 static int          progress_delay = 0;
 
-static Atom         ATOM_WM_DELETE_WINDOW = None;
-static Atom         ATOM_WM_PROTOCOLS = None;
-
 #define MAX_DIM        32767
 
 #define SCALE_X(x) (int)(scale_x * (x) + .5)
@@ -200,9 +198,7 @@ main(int argc, char **argv)
    XSelectInput(disp, win, KeyPressMask | ButtonPressMask | ButtonReleaseMask |
                 ButtonMotionMask | PointerMotionMask);
 
-   ATOM_WM_PROTOCOLS = XInternAtom(disp, "WM_PROTOCOLS", False);
-   ATOM_WM_DELETE_WINDOW = XInternAtom(disp, "WM_DELETE_WINDOW", False);
-   XSetWMProtocols(disp, win, &ATOM_WM_DELETE_WINDOW, 1);
+   props_win_set_proto_quit(win);
 
    imlib_context_set_display(disp);
    imlib_context_set_visual(DefaultVisual(disp, DefaultScreen(disp)));
@@ -250,8 +246,7 @@ main(int argc, char **argv)
              break;
 
           case ClientMessage:
-             if (ev.xclient.message_type == ATOM_WM_PROTOCOLS &&
-                 (Atom) ev.xclient.data.l[0] == ATOM_WM_DELETE_WINDOW)
+             if (props_clientmsg_check_quit(&ev.xclient))
                 goto quit;
              break;
           case KeyPress:
diff --git a/src/bin/props.c b/src/bin/props.c
new file mode 100644
index 0000000..e5e8681
--- /dev/null
+++ b/src/bin/props.c
@@ -0,0 +1,25 @@
+/*
+ * Property handling
+ */
+#include <X11/Xatom.h>
+#include <X11/Xlib.h>
+
+#include "props.h"
+
+static Atom         ATOM_WM_DELETE_WINDOW = None;
+static Atom         ATOM_WM_PROTOCOLS = None;
+
+void
+props_win_set_proto_quit(Window win)
+{
+   ATOM_WM_PROTOCOLS = XInternAtom(disp, "WM_PROTOCOLS", False);
+   ATOM_WM_DELETE_WINDOW = XInternAtom(disp, "WM_DELETE_WINDOW", False);
+   XSetWMProtocols(disp, win, &ATOM_WM_DELETE_WINDOW, 1);
+}
+
+int
+props_clientmsg_check_quit(const XClientMessageEvent * ev)
+{
+   return ev->message_type == ATOM_WM_PROTOCOLS &&
+      (Atom) ev->data.l[0] == ATOM_WM_DELETE_WINDOW;
+}
diff --git a/src/bin/props.h b/src/bin/props.h
new file mode 100644
index 0000000..aeecbf1
--- /dev/null
+++ b/src/bin/props.h
@@ -0,0 +1,16 @@
+/*
+ * Property handling
+ */
+#ifndef PROPS_H
+#define PROPS_H
+
+#include <X11/Xatom.h>
+#include <X11/Xlib.h>
+
+extern Display     *disp;
+
+void                props_win_set_proto_quit(Window win);
+
+int                 props_clientmsg_check_quit(const XClientMessageEvent * ev);
+
+#endif /* PROPS_H */

-- 


Reply via email to