void max_button_event (WnckWindow *win, decor_event *gtkwd_event, decor_event_type gtkwd_type) { decor_t *d = g_object_get_data (G_OBJECT (win), "decor"); guint state = d->button_states[BUTTON_MAX]; if (action_menu_mapped && gtkwd_type == GButtonPress) { gtk_object_destroy (GTK_OBJECT (action_menu)); } if (wnck_window_is_maximized (win)) common_button_event (win, gtkwd_event, gtkwd_type, BUTTON_MAX, 3, _("Unmaximize Window")); else common_button_event (win, gtkwd_event, gtkwd_type, BUTTON_MAX, 3, _("Maximize Window")); switch (gtkwd_type) { case GButtonRelease: if (gtkwd_event->button <= 3) { if (state == BUTTON_EVENT_ACTION_STATE) { if (gtkwd_event->button == 1) { if (wnck_window_is_maximized (win)) wnck_window_unmaximize (win); else if (wnck_window_is_maximized_vertically (win)) wnck_window_unmaximize_vertically (win); else if (wnck_window_is_maximized_horizontally (win)) wnck_window_unmaximize_horizontally (win); else wnck_window_maximize (win); } else if (gtkwd_event->button == 2) { if (wnck_window_is_maximized_vertically (win)) wnck_window_unmaximize_vertically (win); else wnck_window_maximize_vertically (win); } else if (gtkwd_event->button == 3) { if (wnck_window_is_maximized_horizontally (win)) wnck_window_unmaximize_horizontally (win); else wnck_window_maximize_horizontally (win); } } } break; default: break; } }
int c_get_window_is_maximized_vertically(lua_State *lua) { int top = lua_gettop(lua); if (top != 0) { luaL_error(lua, "get_window_is_horisontally_maximized: %s", no_indata_expected_error); return 0; } WnckWindow *window = get_current_window(); gboolean is_vertically_maximized = FALSE; if (window) { is_vertically_maximized = wnck_window_is_maximized_vertically(window); } lua_pushboolean(lua, is_vertically_maximized); return 1; }