When an external monitor is connected or disconnected, about 25% of the
time an activity does not resize correctly; a size-changed signal occurs
but the workarea geometry has not changed.
Underlying problem is an update race in get_monitor_workarea, so the fix
is to call get_monitor_geometry for obtaining the width and height.
Can be reproduced easily without an external monitor by switching
display panel resolution repeatedly;
xrandr --output eDP1 --mode 1024x768
xrandr --output eDP1 --mode 1366x768
Part of a fix for https://bugs.sugarlabs.org/ticket/4968
- add two examples,
- document critical properties as keyword arguments in the class init,
- ensure documentation is consistent between RadioToolButton and
ToolButton, (as some of the text is similar),
- part of feature Sugar3 Docs,
https://wiki.sugarlabs.org/go/Features/Sugar3_Docs
- follow How To Guide
https://wiki.sugarlabs.org/go/Features/Sugar3_Docs/How_To_Write
Derived from work by
- Hrishi <hrishipatel99@gmail.com> (31176ea) and
- radicalonion <ndefilippis98@gmail.com> (db89aca).
The popdown state argument was removed in 90cec5b, as the palette
popdowns were unified. However, this is a public api. Removing
the argument caused exceptions to be raised, breaking applications.
Most uses of the state argument were for the SECONDARY state, which
is now the default behaviour.
This commit re-adds the argument with a deprecation notice.
This adds a explicit method for cleaning up the animation. Previously,
animations expected the next_frame to be called where frame=end.
That guarantee was never provided by the api. This resulted in
animations sometimes being in odd states. For example, Browse activity
had an animation that overrode the Gtk "draw" signal. If the signal
was not unbound, the animated object was mistakenly rendered after
the completion of the animation, obstructing the user's view.
This api is explicit and allows cleaner code in the animation
implementation. The clean up code goes in do_stop rather than in a
conditional of next_frame.
Many activities already have the repository url pointing to their GitHub
page - which also serves as a bug tracker for many of the projects. The
repository url is not part of the spec, but the bug tracker url is.
This commit adds the 1st pass generator for these files. It also adds
documentation about the required fields in the "activity.info"
file, as AppStream requires more metadata than most activities currently
include.
When created via "git submodules add", a submodules may have the
"/.git" path be a file rather than a directory. The bundlebuilder
previously thought that all submodules had "/.git" as a directory.
The unversioned import results in the following log noise:
/usr/lib/python2.7/site-packages/sugar3/graphics/window.py:26: PyGIWarning: GdkX11 was imported without specifying a version first. Use gi.require_version('GdkX11', '3.0') before import to ensure that the right version gets loaded.
from gi.repository import GdkX11
Problem #1, buddy menu appears on Sugar startup on physical hardware, or
when mouse is centre of display.
Problem #2, Terminal toolbar steals keyboard focus, when mouse is left
in home view search box at activity start time.
Regressions were introduced in the port from Gtk2 to Gtk3.
Cause is enter-notify-events that arrive because cursor is already
present in widgets as they are realised and mapped.
Fix is to capture cursor position when the widget is being created, and
ignore enter-notify-event if the same position is seen.
The log message "PaletteWindowWidget popup get_visible True" is not
useful, and is removed. It can be made to occur in Terminal by repeated
right-click on any of the first three toolbar button.