Mageia Bugzilla – Attachment 9069 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 mgaapplet
mgaaplet_use_statusnotifier1.0.diff (text/plain), 3.20 KB, created by
Frédéric "LpSolit" Buclin
on 2017-03-11 20:00:43 CET
(
hide
)
Description:
Use DBus Menu from mgaapplet
Filename:
MIME Type:
Creator:
Frédéric "LpSolit" Buclin
Created:
2017-03-11 20:00:43 CET
Size:
3.20 KB
patch
obsolete
>From 9351c83387a0e699f95b1c233f2322e21208bd58 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:45:14 +0100 >Subject: [PATCH] Use DBus Menu + StatusNotifier 1.0 (mga#20410) > >--- > NEWS | 2 ++ > mgaapplet | 34 ++++++++++++++-------------------- > 2 files changed, 16 insertions(+), 20 deletions(-) > >diff --git a/NEWS b/NEWS >index 3137f1a..ada0cf0 100644 >--- a/NEWS >+++ b/NEWS >@@ -1,3 +1,5 @@ >+- use DBus Menu (requires StatusNotifier 1.0) (mga#20410) >+ > Version 3.19 - 5 March 2017, Nicolas Lécureuil > > - use bigger icons for mgaaplet (mga#18107) >diff --git a/mgaapplet b/mgaapplet >index 04e0842..79541d7 100755 >--- a/mgaapplet >+++ b/mgaapplet >@@ -42,11 +42,6 @@ use Net::DBus qw(:typing); > use Rpmdrake::open_db; > use Glib::Object::Introspection; > >-Glib::Object::Introspection->setup( >- basename => 'StatusNotifier', >- version => '0.1', >- package => 'StatusNotifier'); >- > POSIX::sigprocmask(SIG_BLOCK, POSIX::SigSet->new(SIGCHLD)); > > if (!find { $_ eq '--auto-update' } @ARGV) { >@@ -180,13 +175,16 @@ my ($icon, $is_plasma); > # the deprecated GtkStatusIcon. > if ($ENV{DESKTOP_SESSION} =~ /plasma$/i) { > $is_plasma = 1; >- $icon = StatusNotifier::Notifier->new_from_icon_name('mgaapplet', 'STATUS_NOTIFIER_CATEGORY_APPLICATION_STATUS', 'mgaonline'); >+ >+ Glib::Object::Introspection->setup( >+ basename => 'StatusNotifier', >+ version => '1.0', >+ package => 'StatusNotifier'); >+ >+ $icon = StatusNotifier::Item->new_from_icon_name('mgaapplet', 'STATUS_NOTIFIER_CATEGORY_APPLICATION_STATUS', 'mgaonline'); > $icon->set_title('mgaapplet'); > $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; >@@ -636,14 +634,6 @@ sub checkUpdates() { > member($state_global, qw(disconnected)) or silentCheck(); > } > >-sub go2State { >- my ($state) = @_; >- $menu->destroy if $menu; >- $menu = setState($state); >- $state_global = $state; >- gtkflush(); >-} >- > sub shouldStart() { > to_bool($local_config{AUTOSTART} ne 'FALSE'); > } >@@ -672,7 +662,7 @@ sub about_dialog() { > return 1; > } > >-sub setState { >+sub go2State { > my ($state) = @_; > my $checkme; > state $previous_state; >@@ -731,7 +721,8 @@ sub setState { > warn ">> ERR:$@" if $@; > } > >- my $menu = Gtk3::Menu->new; >+ $menu->destroy if $menu; >+ $menu = Gtk3::Menu->new; > foreach (@arr) { > my $action = $actions{$_}; > next if !ref($action->{launch}); >@@ -745,7 +736,10 @@ sub setState { > $menu->append(gtksignal_connect(gtkset_active($checkme = Gtk3::CheckMenuItem->new_with_label(N("Always launch on startup")), shouldStart()), toggled => sub { setAutoStart(uc(bool2text($checkme->get_active))) })); > $checkme->show; > $menu->append(gtksignal_connect(gtkshow(Gtk3::MenuItem->new_with_label(N("Quit"))), activate => sub { mainQuit() })); >- $menu; >+ >+ $icon->set_context_menu($menu) if $is_plasma; >+ $state_global = $state; >+ gtkflush(); > } > > sub setAutoStart { >-- >2.10.2 >
From 9351c83387a0e699f95b1c233f2322e21208bd58 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:45:14 +0100 Subject: [PATCH] Use DBus Menu + StatusNotifier 1.0 (mga#20410) --- NEWS | 2 ++ mgaapplet | 34 ++++++++++++++-------------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/NEWS b/NEWS index 3137f1a..ada0cf0 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +- use DBus Menu (requires StatusNotifier 1.0) (mga#20410) + Version 3.19 - 5 March 2017, Nicolas Lécureuil - use bigger icons for mgaaplet (mga#18107) diff --git a/mgaapplet b/mgaapplet index 04e0842..79541d7 100755 --- a/mgaapplet +++ b/mgaapplet @@ -42,11 +42,6 @@ use Net::DBus qw(:typing); use Rpmdrake::open_db; use Glib::Object::Introspection; -Glib::Object::Introspection->setup( - basename => 'StatusNotifier', - version => '0.1', - package => 'StatusNotifier'); - POSIX::sigprocmask(SIG_BLOCK, POSIX::SigSet->new(SIGCHLD)); if (!find { $_ eq '--auto-update' } @ARGV) { @@ -180,13 +175,16 @@ my ($icon, $is_plasma); # the deprecated GtkStatusIcon. if ($ENV{DESKTOP_SESSION} =~ /plasma$/i) { $is_plasma = 1; - $icon = StatusNotifier::Notifier->new_from_icon_name('mgaapplet', 'STATUS_NOTIFIER_CATEGORY_APPLICATION_STATUS', 'mgaonline'); + + Glib::Object::Introspection->setup( + basename => 'StatusNotifier', + version => '1.0', + package => 'StatusNotifier'); + + $icon = StatusNotifier::Item->new_from_icon_name('mgaapplet', 'STATUS_NOTIFIER_CATEGORY_APPLICATION_STATUS', 'mgaonline'); $icon->set_title('mgaapplet'); $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; @@ -636,14 +634,6 @@ sub checkUpdates() { member($state_global, qw(disconnected)) or silentCheck(); } -sub go2State { - my ($state) = @_; - $menu->destroy if $menu; - $menu = setState($state); - $state_global = $state; - gtkflush(); -} - sub shouldStart() { to_bool($local_config{AUTOSTART} ne 'FALSE'); } @@ -672,7 +662,7 @@ sub about_dialog() { return 1; } -sub setState { +sub go2State { my ($state) = @_; my $checkme; state $previous_state; @@ -731,7 +721,8 @@ sub setState { warn ">> ERR:$@" if $@; } - my $menu = Gtk3::Menu->new; + $menu->destroy if $menu; + $menu = Gtk3::Menu->new; foreach (@arr) { my $action = $actions{$_}; next if !ref($action->{launch}); @@ -745,7 +736,10 @@ sub setState { $menu->append(gtksignal_connect(gtkset_active($checkme = Gtk3::CheckMenuItem->new_with_label(N("Always launch on startup")), shouldStart()), toggled => sub { setAutoStart(uc(bool2text($checkme->get_active))) })); $checkme->show; $menu->append(gtksignal_connect(gtkshow(Gtk3::MenuItem->new_with_label(N("Quit"))), activate => sub { mainQuit() })); - $menu; + + $icon->set_context_menu($menu) if $is_plasma; + $state_global = $state; + gtkflush(); } sub setAutoStart { -- 2.10.2
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 20410
: 9069 |
9070
|
9084
|
9085