[polari] userList: Switch ScrolledWindow / Stack for user list
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [polari] userList: Switch ScrolledWindow / Stack for user list
- Date: Thu, 8 Aug 2013 13:10:22 +0000 (UTC)
commit 315849a95ef5fd8d90981893b3fe62700923e66c
Author: Florian Müllner <fmuellner gnome org>
Date: Thu Jul 25 19:38:51 2013 +0200
userList: Switch ScrolledWindow / Stack for user list
We don't want to scroll over the maximum number of users in any
room, but the ones from the current one. No idea how I ended up
with that code in the first place ...
data/resources/main-window.ui | 5 ++---
src/chatView.js | 2 +-
src/mainWindow.js | 4 +---
src/userList.js | 24 ++++++++++++++----------
4 files changed, 18 insertions(+), 17 deletions(-)
---
diff --git a/data/resources/main-window.ui b/data/resources/main-window.ui
index fa6b1b0..0364133 100644
--- a/data/resources/main-window.ui
+++ b/data/resources/main-window.ui
@@ -187,11 +187,10 @@
<property name="hexpand">False</property>
<property name="transition_type">slide-left</property>
<child>
- <object class="GtkScrolledWindow" id="user_list_scrollview">
+ <object class="GtkStack" id="user_list_stack">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="transition_type">crossfade</property>
<child>
<placeholder/>
</child>
diff --git a/src/chatView.js b/src/chatView.js
index d9dc715..9fb20be 100644
--- a/src/chatView.js
+++ b/src/chatView.js
@@ -174,7 +174,7 @@ const ChatView = new Lang.Class({
this._room.disconnect(this._roomSignals[i]);
this._roomSignals = [];
- if (this._room.channel) {
+ if (!this._room.channel.get_invalidated()) {
let app = Gio.Application.get_default();
app.hold();
this._room.channel.connect('invalidated',
diff --git a/src/mainWindow.js b/src/mainWindow.js
index 5422432..4d559d7 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -70,9 +70,7 @@ const MainWindow = new Lang.Class({
this._roomList = new RoomList.RoomList();
scroll.add(this._roomList.widget);
- scroll = builder.get_object('user_list_scrollview');
- this._userListStack = new Gtk.Stack();
- scroll.add(this._userListStack);
+ this._userListStack = builder.get_object('user_list_stack');
let revealer = builder.get_object('user_list_revealer');
app.connect('action-state-changed::user-list', Lang.bind(this,
diff --git a/src/userList.js b/src/userList.js
index 4ac7173..870f981 100644
--- a/src/userList.js
+++ b/src/userList.js
@@ -8,20 +8,24 @@ const UserList = new Lang.Class({
Name: 'UserList',
_init: function(room) {
- this.widget = new Gtk.ListBox();
+ this.widget = new Gtk.ScrolledWindow();
+ this.widget.hscrollbar_policy = Gtk.PolicyType.NEVER;
this.widget.set_size_request(150, -1);
- this.widget.set_selection_mode(Gtk.SelectionMode.NONE);
- this.widget.set_header_func(Lang.bind(this, this._updateHeader));
- this.widget.set_sort_func(Lang.bind(this, this._sort));
+ this._list = new Gtk.ListBox();
+ this.widget.add(this._list);
+
+ this._list.set_selection_mode(Gtk.SelectionMode.NONE);
+ this._list.set_header_func(Lang.bind(this, this._updateHeader));
+ this._list.set_sort_func(Lang.bind(this, this._sort));
this._room = room;
/* tmp - use a stylesheet instead */
let bg = new Gdk.RGBA();
bg.parse("#eee");
- this.widget.override_background_color(0, bg);
+ this._list.override_background_color(0, bg);
room.connect('member-renamed',
@@ -70,15 +74,15 @@ const UserList = new Lang.Class({
ellipsize: Pango.EllipsizeMode.END }));
row.add(box);
row.show_all();
- this.widget.add(row);
+ this._list.add(row);
},
_removeMember: function(member) {
- let rows = this.widget.get_children();
+ let rows = this._list.get_children();
for (let i = 0; i < rows.length; i++) {
if (rows[i]._member != member)
continue;
- this.widget.remove(rows[i]);
+ this._list.remove(rows[i]);
break;
}
},
@@ -88,12 +92,12 @@ const UserList = new Lang.Class({
},
_updateHeader: function(row, before) {
- let numMembers = this.widget.get_children().length;
+ let numMembers = this._list.get_children().length;
if (before)
row.set_header(null);
- let header = this.widget.get_row_at_index(0).get_header();
+ let header = this._list.get_row_at_index(0).get_header();
if (header) {
header._counterLabel.label = numMembers.toString();
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]