Skip to content

Commit

Permalink
solve cinnamon linuxmint#681
Browse files Browse the repository at this point in the history
  • Loading branch information
Cobinja authored and clefebvre committed Sep 5, 2012
1 parent 930908f commit 9bda8d2
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 2 deletions.
33 changes: 33 additions & 0 deletions src/compositor/meta-window-actor.c
Original file line number Diff line number Diff line change
Expand Up @@ -1508,6 +1508,9 @@ meta_window_actor_new (MetaWindow *window)
MetaWindowActorPrivate *priv;
MetaFrame *frame;
Window top_window;
MetaRectangle rectWorkArea[1];
MetaRectangle *rectWindow;
int tooltipMoved = FALSE;

frame = meta_window_get_frame (window);
if (frame)
Expand Down Expand Up @@ -1536,10 +1539,40 @@ meta_window_actor_new (MetaWindow *window)

/* Hang our compositor window state off the MetaWindow for fast retrieval */
meta_window_set_compositor_private (window, G_OBJECT (self));
//meta_window_get_work_area_for_monitor(window, 0, rect);
meta_window_get_work_area_all_monitors(window, rectWorkArea);
printf("NEW WINDOW (%s); workspace (%ld): x=%d, y=%d, width=%d, height=%d\n", meta_window_get_wm_class(window), (long) window->workspace, rectWorkArea->x, rectWorkArea->y, rectWorkArea->width, rectWorkArea->height);

if (window->type == META_WINDOW_POPUP_MENU){
clutter_container_add_actor (CLUTTER_CONTAINER (info->top_window_group),
CLUTTER_ACTOR (self));
}
else if (window->type == META_WINDOW_TOOLTIP) {
meta_window_get_work_area_all_monitors(window, rectWorkArea);
rectWindow = meta_window_get_rect(window);
// move tooltip out of top panel if necessary
if (rectWindow->y < rectWorkArea->y) {
meta_window_move(window, FALSE, rectWindow->x, rectWorkArea->y);
tooltipMoved = TRUE;
}
rectWindow = meta_window_get_rect(window);
// move tooltip out of bottom panel if necessary
if ((rectWindow->y + rectWindow->height) > (rectWorkArea->y + rectWorkArea->height)) {
meta_window_move(window, FALSE, rectWindow->x, rectWorkArea->y + rectWorkArea->height - rectWindow->height);
tooltipMoved = TRUE;
}

if (tooltipMoved) {
clutter_container_add_actor (CLUTTER_CONTAINER (info->window_group),
CLUTTER_ACTOR (self));
}
else {
clutter_container_add_actor (CLUTTER_CONTAINER (info->top_window_group),
CLUTTER_ACTOR (self));
}
rectWindow = meta_window_get_rect(window);
printf("NEW TOOLTIP: (%s): x=%d, y=%d, width=%d, height=%d\n", meta_window_get_wm_class(window), rectWindow->x, rectWindow->y, rectWindow->width, rectWindow->height);

}else{
clutter_container_add_actor (CLUTTER_CONTAINER (info->window_group),
CLUTTER_ACTOR (self));
Expand Down
8 changes: 6 additions & 2 deletions src/core/window.c
Original file line number Diff line number Diff line change
Expand Up @@ -4625,7 +4625,9 @@ meta_window_move_resize_internal (MetaWindow *window,
MetaRectangle new_rect;
MetaRectangle old_rect;

g_return_if_fail (!window->override_redirect);
if (!window->type == META_WINDOW_TOOLTIP) {
g_return_if_fail (!window->override_redirect);
}

is_configure_request = (flags & META_IS_CONFIGURE_REQUEST) != 0;
do_gravity_adjust = (flags & META_DO_GRAVITY_ADJUST) != 0;
Expand Down Expand Up @@ -5077,7 +5079,9 @@ meta_window_move (MetaWindow *window,
{
MetaMoveResizeFlags flags;

g_return_if_fail (!window->override_redirect);
if (!window->type == META_WINDOW_TOOLTIP) {
g_return_if_fail (!window->override_redirect);
}

flags = (user_op ? META_IS_USER_ACTION : 0) | META_IS_MOVE_ACTION;

Expand Down

0 comments on commit 9bda8d2

Please sign in to comment.