Mageia Bugzilla – Attachment 9070 Details for
Bug 20410
Use DBus Menu (via StatusNotifier 1.0) for mgaapplet and net_applet
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
[patch]
Use DBus Menu from net_applet
net_applet_use_statusnotifier1.0.diff (text/plain), 3.69 KB, created by
Frédéric "LpSolit" Buclin
on 2017-03-11 20:03:04 CET
(
hide
)
Description:
Use DBus Menu from net_applet
Filename:
MIME Type:
Creator:
Frédéric "LpSolit" Buclin
Created:
2017-03-11 20:03:04 CET
Size:
3.69 KB
patch
obsolete
>From bb66eb2be354aeef0285523f9317a3b202a32262 Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Buclin?= <LpSolit@netscape.net> >Date: Sat, 11 Mar 2017 19:52:30 +0100 >Subject: [PATCH] Use DBus Menu + StatusNotifier 1.0 (mga#20410) > >--- > NEWS | 1 + > bin/net_applet | 44 +++++++++++--------------------------------- > 2 files changed, 12 insertions(+), 33 deletions(-) > >diff --git a/NEWS b/NEWS >index 243b399..47495e3 100644 >--- a/NEWS >+++ b/NEWS >@@ -1,4 +1,5 @@ > - net_applet: >+ o use DBus Menu (requires StatusNotifier 1.0) (mga#20410) > o make sure the status icon exists before trying to display it (mga#20425) > > 2.28 >diff --git a/bin/net_applet b/bin/net_applet >index 1a0d369..6eb2f3f 100755 >--- a/bin/net_applet >+++ b/bin/net_applet >@@ -26,11 +26,6 @@ use Gtk3::Notify -init, 'NetApplet'; > use ugtk3 qw(:create :helpers :wrappers :dialogs); > use Glib::Object::Introspection; > >-Glib::Object::Introspection->setup( >- basename => 'StatusNotifier', >- version => '0.1', >- package => 'StatusNotifier'); >- > my $onstartupfile = "$ENV{HOME}/.net_applet"; > my $system_file = '/etc/sysconfig/drakx-net'; > shouldStart() or die "$onstartupfile should be set to TRUE or use net_applet --force\n"; >@@ -237,13 +232,16 @@ my %actions = ( > # the deprecated GtkStatusIcon. > if ($ENV{DESKTOP_SESSION} =~ /plasma$/i) { > $is_plasma = 1; >- $icon = StatusNotifier::Notifier->new_from_icon_name('net_applet', 'STATUS_NOTIFIER_CATEGORY_APPLICATION_STATUS', 'drakx-net-unconfigured'); >+ >+ Glib::Object::Introspection->setup( >+ basename => 'StatusNotifier', >+ version => '1.0', >+ package => 'StatusNotifier'); >+ >+ $icon = StatusNotifier::Item->new_from_icon_name('net_applet', 'STATUS_NOTIFIER_CATEGORY_APPLICATION_STATUS', 'drakx-net-unconfigured'); > $icon->set_title('net_applet'); > $icon->set_status('STATUS_NOTIFIER_STATUS_ACTIVE'); > $icon->register; >- $icon->signal_connect(context_menu => sub { >- $menu->popup(undef, undef, undef, undef, 0, Gtk3::get_current_event_time()) if $menu; >- }); > } > else { > $icon = Gtk3::StatusIcon->new; >@@ -543,36 +541,16 @@ sub create_action_item { > } > } > >-sub empty_menu { >- my ($menu) = @_; >- delete $_->{menuitems} foreach values %wireless_networks; >- $menu->destroy if $menu; >- Gtk3::Menu->new; >-} >- > sub get_wireless_networks_sorted() { > sort { > $b->{current} <=> $a->{current} || $b->{signal_strength} <=> $a->{signal_strength} || $a->{name} cmp $b->{name}; > } values %wireless_networks; > } > >-sub generate_simple_menu() { >- $simple_menu = empty_menu($simple_menu); >- >- if ($wireless_device) { >- my @networks = get_wireless_networks_sorted(); >- my @valuable_networks = splice @networks, 0, 7; >- gtkappend($simple_menu, >- (map { generate_wireless_menuitem($_) } @valuable_networks), >- (@networks ? create_menu(N("More networks"), map { generate_wireless_menuitem($_) } @networks) : ()), >- Gtk3::SeparatorMenuItem->new, >- ); >- } >- gtkappend($simple_menu, create_menu_choices('setInterface', 'allow_single_choice')); >-} >- > sub generate_menu() { >- $menu = empty_menu($menu); >+ delete $_->{menuitems} foreach values %wireless_networks; >+ $menu->destroy if $menu; >+ $menu = Gtk3::Menu->new; > > my (@settings); > my $interactive; >@@ -612,7 +590,7 @@ sub generate_menu() { > $menu->append(gtkshow(Gtk3::SeparatorMenuItem->new)); > $menu->append(create_action_item('help')); > $menu->append(create_action_item('quit')); >- $menu; >+ $icon->set_context_menu($menu) if $is_plasma; > } > sub mainQuit() { > Glib::Source->remove($timeout) if $timeout; >-- >2.10.2 >
From bb66eb2be354aeef0285523f9317a3b202a32262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Buclin?= <LpSolit@netscape.net> Date: Sat, 11 Mar 2017 19:52:30 +0100 Subject: [PATCH] Use DBus Menu + StatusNotifier 1.0 (mga#20410) --- NEWS | 1 + bin/net_applet | 44 +++++++++++--------------------------------- 2 files changed, 12 insertions(+), 33 deletions(-) diff --git a/NEWS b/NEWS index 243b399..47495e3 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,5 @@ - net_applet: + o use DBus Menu (requires StatusNotifier 1.0) (mga#20410) o make sure the status icon exists before trying to display it (mga#20425) 2.28 diff --git a/bin/net_applet b/bin/net_applet index 1a0d369..6eb2f3f 100755 --- a/bin/net_applet +++ b/bin/net_applet @@ -26,11 +26,6 @@ use Gtk3::Notify -init, 'NetApplet'; use ugtk3 qw(:create :helpers :wrappers :dialogs); use Glib::Object::Introspection; -Glib::Object::Introspection->setup( - basename => 'StatusNotifier', - version => '0.1', - package => 'StatusNotifier'); - my $onstartupfile = "$ENV{HOME}/.net_applet"; my $system_file = '/etc/sysconfig/drakx-net'; shouldStart() or die "$onstartupfile should be set to TRUE or use net_applet --force\n"; @@ -237,13 +232,16 @@ my %actions = ( # the deprecated GtkStatusIcon. if ($ENV{DESKTOP_SESSION} =~ /plasma$/i) { $is_plasma = 1; - $icon = StatusNotifier::Notifier->new_from_icon_name('net_applet', 'STATUS_NOTIFIER_CATEGORY_APPLICATION_STATUS', 'drakx-net-unconfigured'); + + Glib::Object::Introspection->setup( + basename => 'StatusNotifier', + version => '1.0', + package => 'StatusNotifier'); + + $icon = StatusNotifier::Item->new_from_icon_name('net_applet', 'STATUS_NOTIFIER_CATEGORY_APPLICATION_STATUS', 'drakx-net-unconfigured'); $icon->set_title('net_applet'); $icon->set_status('STATUS_NOTIFIER_STATUS_ACTIVE'); $icon->register; - $icon->signal_connect(context_menu => sub { - $menu->popup(undef, undef, undef, undef, 0, Gtk3::get_current_event_time()) if $menu; - }); } else { $icon = Gtk3::StatusIcon->new; @@ -543,36 +541,16 @@ sub create_action_item { } } -sub empty_menu { - my ($menu) = @_; - delete $_->{menuitems} foreach values %wireless_networks; - $menu->destroy if $menu; - Gtk3::Menu->new; -} - sub get_wireless_networks_sorted() { sort { $b->{current} <=> $a->{current} || $b->{signal_strength} <=> $a->{signal_strength} || $a->{name} cmp $b->{name}; } values %wireless_networks; } -sub generate_simple_menu() { - $simple_menu = empty_menu($simple_menu); - - if ($wireless_device) { - my @networks = get_wireless_networks_sorted(); - my @valuable_networks = splice @networks, 0, 7; - gtkappend($simple_menu, - (map { generate_wireless_menuitem($_) } @valuable_networks), - (@networks ? create_menu(N("More networks"), map { generate_wireless_menuitem($_) } @networks) : ()), - Gtk3::SeparatorMenuItem->new, - ); - } - gtkappend($simple_menu, create_menu_choices('setInterface', 'allow_single_choice')); -} - sub generate_menu() { - $menu = empty_menu($menu); + delete $_->{menuitems} foreach values %wireless_networks; + $menu->destroy if $menu; + $menu = Gtk3::Menu->new; my (@settings); my $interactive; @@ -612,7 +590,7 @@ sub generate_menu() { $menu->append(gtkshow(Gtk3::SeparatorMenuItem->new)); $menu->append(create_action_item('help')); $menu->append(create_action_item('quit')); - $menu; + $icon->set_context_menu($menu) if $is_plasma; } sub mainQuit() { Glib::Source->remove($timeout) if $timeout; -- 2.10.2
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 20410
:
9069
|
9070
|
9084
|
9085