xwayland/window: Move set-allow functions lower down
This will make some helper functions in the same file usable without extra declarations. Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
This commit is contained in:
		
							parent
							
								
									7b1758936b
								
							
						
					
					
						commit
						5ce96a2a73
					
				| 
						 | 
					@ -56,41 +56,6 @@ static DevPrivateKeyRec xwl_window_private_key;
 | 
				
			||||||
static DevPrivateKeyRec xwl_damage_private_key;
 | 
					static DevPrivateKeyRec xwl_damage_private_key;
 | 
				
			||||||
static const char *xwl_surface_tag = "xwl-surface";
 | 
					static const char *xwl_surface_tag = "xwl-surface";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					 | 
				
			||||||
xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow,
 | 
					 | 
				
			||||||
                             const char *debug_msg)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    xwl_window->allow_commits = allow;
 | 
					 | 
				
			||||||
    DebugF("XWAYLAND: win %d allow_commits = %d (%s)\n",
 | 
					 | 
				
			||||||
           xwl_window->window->drawable.id, allow, debug_msg);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void
 | 
					 | 
				
			||||||
xwl_window_set_allow_commits_from_property(struct xwl_window *xwl_window,
 | 
					 | 
				
			||||||
                                           PropertyPtr prop)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    static Bool warned = FALSE;
 | 
					 | 
				
			||||||
    CARD32 *propdata;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (prop->propertyName != xwl_window->xwl_screen->allow_commits_prop)
 | 
					 | 
				
			||||||
        FatalError("Xwayland internal error: prop mismatch in %s.\n", __func__);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (prop->type != XA_CARDINAL || prop->format != 32 || prop->size != 1) {
 | 
					 | 
				
			||||||
        /* Not properly set, so fall back to safe and glitchy */
 | 
					 | 
				
			||||||
        xwl_window_set_allow_commits(xwl_window, TRUE, "WM fault");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!warned) {
 | 
					 | 
				
			||||||
            LogMessageVerb(X_WARNING, 0, "Window manager is misusing property %s.\n",
 | 
					 | 
				
			||||||
                           NameForAtom(prop->propertyName));
 | 
					 | 
				
			||||||
            warned = TRUE;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    propdata = prop->data;
 | 
					 | 
				
			||||||
    xwl_window_set_allow_commits(xwl_window, !!propdata[0], "from property");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct xwl_window *
 | 
					struct xwl_window *
 | 
				
			||||||
xwl_window_get(WindowPtr window)
 | 
					xwl_window_get(WindowPtr window)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -137,6 +102,41 @@ is_surface_from_xwl_window(struct wl_surface *surface)
 | 
				
			||||||
    return wl_proxy_get_tag((struct wl_proxy *) surface) == &xwl_surface_tag;
 | 
					    return wl_proxy_get_tag((struct wl_proxy *) surface) == &xwl_surface_tag;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow,
 | 
				
			||||||
 | 
					                             const char *debug_msg)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    xwl_window->allow_commits = allow;
 | 
				
			||||||
 | 
					    DebugF("XWAYLAND: win %d allow_commits = %d (%s)\n",
 | 
				
			||||||
 | 
					           xwl_window->window->drawable.id, allow, debug_msg);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					xwl_window_set_allow_commits_from_property(struct xwl_window *xwl_window,
 | 
				
			||||||
 | 
					                                           PropertyPtr prop)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    static Bool warned = FALSE;
 | 
				
			||||||
 | 
					    CARD32 *propdata;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (prop->propertyName != xwl_window->xwl_screen->allow_commits_prop)
 | 
				
			||||||
 | 
					        FatalError("Xwayland internal error: prop mismatch in %s.\n", __func__);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (prop->type != XA_CARDINAL || prop->format != 32 || prop->size != 1) {
 | 
				
			||||||
 | 
					        /* Not properly set, so fall back to safe and glitchy */
 | 
				
			||||||
 | 
					        xwl_window_set_allow_commits(xwl_window, TRUE, "WM fault");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!warned) {
 | 
				
			||||||
 | 
					            LogMessageVerb(X_WARNING, 0, "Window manager is misusing property %s.\n",
 | 
				
			||||||
 | 
					                           NameForAtom(prop->propertyName));
 | 
				
			||||||
 | 
					            warned = TRUE;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    propdata = prop->data;
 | 
				
			||||||
 | 
					    xwl_window_set_allow_commits(xwl_window, !!propdata[0], "from property");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
xwl_window_update_property(struct xwl_window *xwl_window,
 | 
					xwl_window_update_property(struct xwl_window *xwl_window,
 | 
				
			||||||
                           PropertyStateRec *propstate)
 | 
					                           PropertyStateRec *propstate)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue