Commit cbf5046f authored by Richard Molitor's avatar Richard Molitor
Browse files

events: also react to ConfigureNotify after mapping

parent 0d064e95
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ feh_event_handler *ev_handler[LASTEvent];

static void feh_event_handle_ButtonPress(XEvent * ev);
static void feh_event_handle_ButtonRelease(XEvent * ev);
static void feh_event_handle_ConfigureNotify(XEvent * ev);
static void feh_event_handle_LeaveNotify(XEvent * ev);
static void feh_event_handle_MotionNotify(XEvent * ev);
static void feh_event_handle_ClientMessage(XEvent * ev);
@@ -416,7 +415,7 @@ static void feh_event_handle_ButtonRelease(XEvent * ev)
	return;
}

static void feh_event_handle_ConfigureNotify(XEvent * ev)
void feh_event_handle_ConfigureNotify(XEvent * ev)
{
	while (XCheckTypedWindowEvent(disp, ev->xconfigure.window, ConfigureNotify, ev));
	if (!menu_root) {
+2 −0
Original line number Diff line number Diff line
@@ -32,4 +32,6 @@ extern feh_event_handler *ev_handler[];

void feh_event_init(void);

void feh_event_handle_ConfigureNotify(XEvent * ev);

#endif
+10 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "filelist.h"
#include "winwidget.h"
#include "options.h"
#include "events.h"

static void winwidget_unregister(winwidget win);
static void winwidget_register(winwidget win);
@@ -776,6 +777,15 @@ void winwidget_show(winwidget winwid)
		/* wait for the window to map */
		D(("Waiting for window to map\n"));
		XMaskEvent(disp, StructureNotifyMask, &ev);
		/* Unfortunately, StructureNotifyMask does not only mask
		 * the events of type MapNotify (which we want to mask here)
		 * but also such of type ConfigureNotify (and others, see
		 * https://tronche.com/gui/x/xlib/events/processing-overview.html),
		 * which should be handled, especially on tiling wm's. To
		 * remedy this, the handler is executed explicitly:
		 */
		if (ev.type == ConfigureNotify)
			feh_event_handle_ConfigureNotify(&ev);
		D(("Window mapped\n"));
		winwid->visible = 1;
	}