/** Set the window type. * \param L The Lua VM state. * \param window The window object. * \return The number of elements pushed on stack. */ int luaA_window_set_type(lua_State *L, window_t *w) { window_type_t type; const char *buf = luaL_checkstring(L, -1); if (A_STREQ(buf, "desktop")) type = WINDOW_TYPE_DESKTOP; else if(A_STREQ(buf, "dock")) type = WINDOW_TYPE_DOCK; else if(A_STREQ(buf, "splash")) type = WINDOW_TYPE_SPLASH; else if(A_STREQ(buf, "dialog")) type = WINDOW_TYPE_DIALOG; else if(A_STREQ(buf, "menu")) type = WINDOW_TYPE_MENU; else if(A_STREQ(buf, "toolbar")) type = WINDOW_TYPE_TOOLBAR; else if(A_STREQ(buf, "utility")) type = WINDOW_TYPE_UTILITY; else if(A_STREQ(buf, "dropdown_menu")) type = WINDOW_TYPE_DROPDOWN_MENU; else if(A_STREQ(buf, "popup_menu")) type = WINDOW_TYPE_POPUP_MENU; else if(A_STREQ(buf, "tooltip")) type = WINDOW_TYPE_TOOLTIP; else if(A_STREQ(buf, "notification")) type = WINDOW_TYPE_NOTIFICATION; else if(A_STREQ(buf, "combo")) type = WINDOW_TYPE_COMBO; else if(A_STREQ(buf, "dnd")) type = WINDOW_TYPE_DND; else if(A_STREQ(buf, "normal")) type = WINDOW_TYPE_NORMAL; else { warn("Unknown window type '%s'", buf); return 0; } if(w->type != type) { w->type = type; if(w->window != XCB_WINDOW_NONE) ewmh_update_window_type(w->window, window_translate_type(w->type)); luaA_object_emit_signal(globalconf.L, -3, "property::type", 0); } return 0; }
{ w->bg_color.pixel, w->border_color.pixel, XCB_GRAVITY_NORTH_WEST, 1, XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW | XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_PROPERTY_CHANGE, globalconf.default_cmap, xcursor_new(globalconf.connection, xcursor_font_fromstr(w->cursor)) }); /* Set the right properties */ ewmh_update_window_type(w->window, window_translate_type(w->type)); ewmh_update_strut(w->window, &w->strut); } /** Refresh the window content by copying its pixmap data to its window. * \param w The drawin to refresh. */ static inline void drawin_refresh_pixmap(drawin_t *w) { drawin_refresh_pixmap_partial(w, 0, 0, w->geometry.width, w->geometry.height); } /** Move and/or resize a drawin * \param L The Lua VM state. * \param udx The index of the drawin.