bgribble/mfp

Make console and left-side displays hideable

Closed this issue · 3 comments

It would be great to have the canvas take up the whole window when wanted.

I'm linking to this ticket from a Stack Overflow question... here are some screenshots of the problem behavior I'm running into:

Step 1: open the app and make a little patch.

toggle-1

Step 2: Hit ~ to close the console/log pane. Note that the stage background color (off white) stays put and the new screen space on the right is default Gtk gray.

toggle-2

Step 3: Hit ~ again to reopen the console/log pane: Note that now the painted part of the canvas goes to the full-height size and overlays the console!

toggle-3

I wonder if this is related to #165. That ticket is also about "n-1" behavior, where some event seems to be queued up but doesn't affect the canvas until some other action triggers it. In that case, the text is rendered but styles are not applied until the window is hidden and then repainted. In this case, the stage size is changed by a call to clutter_stage_set_size in the allocation-changed callback of the GtkClutterEmbed but the size change doesn't take effect until some other layout-affecting event happens.

The kludge above (changing the position again by one pixel after a delay) works OK, closing this issue but should fix the kludge in the future.