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 */ --