[gnome-shell] ibusCandidatePopup: Make candidates reactive to pointer clicks
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] ibusCandidatePopup: Make candidates reactive to pointer clicks
- Date: Thu, 14 Feb 2013 23:34:37 +0000 (UTC)
commit c3ed9367766f195fe6bfeca21a812128cecb7ee6
Author: Rui Matos <tiagomatos gmail com>
Date: Thu Jan 17 00:21:14 2013 +0100
ibusCandidatePopup: Make candidates reactive to pointer clicks
Allow for candidates to be selected by clicking on them.
https://bugzilla.gnome.org/show_bug.cgi?id=691902
data/theme/gnome-shell.css | 4 ++++
js/ui/ibusCandidatePopup.js | 12 +++++++++++-
2 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
index 8e5bdc1..8fca629 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -2126,6 +2126,10 @@ StScrollBar StButton#vhandle:active {
background-color: rgba(255,255,255,0.2);
}
+.candidate-box:hover {
+ border-radius: 4px;
+ background-color: rgba(255,255,255,0.1);
+}
.candidate-page-button-box {
height: 2em;
width: 80px;
diff --git a/js/ui/ibusCandidatePopup.js b/js/ui/ibusCandidatePopup.js
index bfebf16..bbc65a0 100644
--- a/js/ui/ibusCandidatePopup.js
+++ b/js/ui/ibusCandidatePopup.js
@@ -19,13 +19,20 @@ const CandidateArea = new Lang.Class({
visible: false });
this._candidateBoxes = [];
for (let i = 0; i < MAX_CANDIDATES_PER_PAGE; ++i) {
- let box = new St.BoxLayout({ style_class: 'candidate-box' });
+ let box = new St.BoxLayout({ style_class: 'candidate-box',
+ reactive: true,
+ track_hover: true });
box._indexLabel = new St.Label({ style_class: 'candidate-index' });
box._candidateLabel = new St.Label({ style_class: 'candidate-label' });
box.add(box._indexLabel, { y_fill: false });
box.add(box._candidateLabel, { y_fill: false });
this._candidateBoxes.push(box);
this.actor.add(box);
+
+ let j = i;
+ box.connect('button-release-event', Lang.bind(this, function(actor, event) {
+ this.emit('candidate-clicked', j, event.get_button(), event.get_state());
+ }));
}
this._buttonBox = new St.BoxLayout({ style_class: 'candidate-page-button-box' });
@@ -136,6 +143,9 @@ const CandidatePopup = new Lang.Class({
this._candidateArea.connect('next-page', Lang.bind(this, function() {
this._panelService.page_down();
}));
+ this._candidateArea.connect('candidate-clicked', Lang.bind(this, function(ca, index, button, state) {
+ this._panelService.candidate_clicked(index, button, state);
+ }));
this._panelService = null;
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]