diff --git a/ChangeLog b/ChangeLog index c2c25272b..b746cc1a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2001-10-14 Havoc Pennington + + * src/window.c (meta_window_new): take a window mapped at + fullscreen size/pos to desire maximization; once I add a + fullscreen state, will change to copy kwin and take this mapping + as a desire for fullscreen, but for now testing with maximization. + + * src/window.h: remove fullscreen window type, now proposing it + as a window state instead. + +2001-10-14 Havoc Pennington + + * src/window.c (meta_window_maximize): always raise windows on + maximize + (meta_window_client_message): when activating a window, move + it to current workspace, instead of moving user to the + window's workspace. + 2001-10-14 Héctor García Álvarez * configure.in: Added "es" to ALL_LINGUAS for Spanish translation. diff --git a/src/session.c b/src/session.c index 92a024761..c27208d85 100644 --- a/src/session.c +++ b/src/session.c @@ -574,9 +574,6 @@ window_type_to_string (MetaWindowType type) case META_WINDOW_MENU: return "menu"; break; - case META_WINDOW_FULLSCREEN: - return "fullscreen"; - break; } return ""; @@ -599,8 +596,6 @@ window_type_from_string (const char *str) return META_WINDOW_TOOLBAR; else if (strcmp (str, "menu") == 0) return META_WINDOW_MENU; - else if (strcmp (str, "fullscreen") == 0) - return META_WINDOW_FULLSCREEN; else return META_WINDOW_NORMAL; } diff --git a/src/stack.c b/src/stack.c index 23a57e565..ef860be24 100644 --- a/src/stack.c +++ b/src/stack.c @@ -268,10 +268,6 @@ compute_layer (MetaWindow *window) /* still experimenting here */ window->layer = META_LAYER_NORMAL; break; - - case META_WINDOW_FULLSCREEN: - window->layer = META_LAYER_FULLSCREEN; - break; default: window->layer = META_LAYER_NORMAL; diff --git a/src/window.c b/src/window.c index 02a3713ab..fdd04402e 100644 --- a/src/window.c +++ b/src/window.c @@ -356,7 +356,17 @@ meta_window_new (MetaDisplay *display, Window xwindow, update_title (window); update_protocols (window); update_wm_hints (window); + update_net_wm_state (window); + /* Initially maximize if window is fullscreen; FIXME + * assume fullscreen state instead once we have that state... + */ + if (!window->maximized && + window->rect.x == 0 && window->rect.y == 0 && + window->rect.width == window->screen->width && + window->rect.height == window->screen->height) + window->maximized = TRUE; + update_mwm_hints (window); update_wm_class (window); update_transient_for (window); @@ -482,12 +492,6 @@ meta_window_new (MetaDisplay *display, Window xwindow, meta_verbose ("Not placing non-normal non-dialog window with PPosition set\n"); } } - - if (window->type == META_WINDOW_FULLSCREEN) - { - meta_verbose ("Won't place fullscreen window\n"); - window->placed = TRUE; - } if (window->type == META_WINDOW_DESKTOP || window->type == META_WINDOW_DOCK) @@ -1074,6 +1078,8 @@ meta_window_maximize (MetaWindow *window) if (!window->maximized) { window->maximized = TRUE; + + meta_window_raise (window); /* save size/pos as appropriate args for move_resize */ window->saved_rect = window->rect; @@ -2454,14 +2460,11 @@ meta_window_client_message (MetaWindow *window, { meta_verbose ("_NET_ACTIVE_WINDOW request for window '%s'", window->desc); - /* Switch to window's workspace - alternatively we could move - * window back to this workspace. I don't know which is right. - */ + /* Get window on current workspace */ if (!meta_workspace_contains_window (window->screen->active_workspace, - window) && - /* this check shouldn't actually be required, I don't think it is */ - window->workspaces) - meta_workspace_activate (window->workspaces->data); + window)) + meta_window_change_workspace (window, + window->screen->active_workspace); meta_window_raise (window); meta_window_focus (window, CurrentTime); /* FIXME CurrentTime */ @@ -4427,13 +4430,6 @@ recalc_window_type (MetaWindow *window) if (window->type == META_WINDOW_DIALOG && window->wm_state_modal) window->type = META_WINDOW_MODAL_DIALOG; - - if (window->type == META_WINDOW_NORMAL && - !window->mwm_decorated && - (window->rect.x == 0 && window->rect.y == 0 && - window->rect.width == window->screen->width && - window->rect.height == window->screen->height)) - window->type = META_WINDOW_FULLSCREEN; meta_verbose ("Calculated type %d for %s, old type %d\n", window->type, window->desc, old_type); @@ -4471,8 +4467,7 @@ recalc_window_features (MetaWindow *window) /* Semantic category overrides the MWM hints */ if (window->type == META_WINDOW_DESKTOP || - window->type == META_WINDOW_DOCK || - window->type == META_WINDOW_FULLSCREEN) + window->type == META_WINDOW_DOCK) { window->decorated = FALSE; window->has_close_func = FALSE; @@ -4530,8 +4525,7 @@ constrain_size (MetaWindow *window, /* Get the allowed size ranges, considering maximized, etc. */ if (window->type == META_WINDOW_DESKTOP || - window->type == META_WINDOW_DOCK || - window->type == META_WINDOW_FULLSCREEN) + window->type == META_WINDOW_DOCK) { fullw = window->screen->width; fullh = window->screen->height; @@ -4652,13 +4646,15 @@ constrain_position (MetaWindow *window, if (!window->placed && window->calc_placement) meta_window_place (window, fgeom, x, y, &x, &y); - if (window->type == META_WINDOW_FULLSCREEN) +#if 0 + if (window->fullscreen) { x = 0; y = 0; } - else if (window->type != META_WINDOW_DESKTOP && - window->type != META_WINDOW_DOCK) +#endif + if (window->type != META_WINDOW_DESKTOP && + window->type != META_WINDOW_DOCK) { int nw_x, nw_y; int se_x, se_y; diff --git a/src/window.h b/src/window.h index 8abcc0764..91c4ad043 100644 --- a/src/window.h +++ b/src/window.h @@ -36,8 +36,7 @@ typedef enum META_WINDOW_DIALOG, META_WINDOW_MODAL_DIALOG, META_WINDOW_TOOLBAR, - META_WINDOW_MENU, - META_WINDOW_FULLSCREEN + META_WINDOW_MENU } MetaWindowType; struct _MetaWindow