Allow cancelling the History List with Escape
Just like Alt+Tab.
This commit is contained in:
parent
c370c0ab41
commit
c7e70f6808
1 changed files with 13 additions and 5 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2010 André Stösel <andre@stoesel.de>
|
Copyright (C) 2010-2011 André Stösel <andre@stoesel.de>
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
This library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Lesser General Public
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -164,6 +164,7 @@ private class NewTabWindow : TabWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
private class HistoryList : Midori.Extension {
|
private class HistoryList : Midori.Extension {
|
||||||
|
protected uint escKeyval;
|
||||||
protected uint modifier_count;
|
protected uint modifier_count;
|
||||||
protected HistoryWindow? history_window;
|
protected HistoryWindow? history_window;
|
||||||
protected ulong[] tmp_sig_ids = new ulong[2];
|
protected ulong[] tmp_sig_ids = new ulong[2];
|
||||||
|
@ -176,13 +177,17 @@ private class HistoryList : Midori.Extension {
|
||||||
public bool key_release (Gdk.EventKey event_key, Browser browser) {
|
public bool key_release (Gdk.EventKey event_key, Browser browser) {
|
||||||
if (event_key.is_modifier > 0) {
|
if (event_key.is_modifier > 0) {
|
||||||
this.modifier_count--;
|
this.modifier_count--;
|
||||||
|
}
|
||||||
|
if (this.modifier_count == 0 || event_key.keyval == this.escKeyval) {
|
||||||
|
browser.disconnect (this.tmp_sig_ids[0]);
|
||||||
|
browser.disconnect (this.tmp_sig_ids[1]);
|
||||||
if (this.modifier_count == 0) {
|
if (this.modifier_count == 0) {
|
||||||
browser.disconnect (this.tmp_sig_ids[0]);
|
|
||||||
browser.disconnect (this.tmp_sig_ids[1]);
|
|
||||||
this.history_window.make_update ();
|
this.history_window.make_update ();
|
||||||
this.history_window.destroy ();
|
} else {
|
||||||
this.history_window = null;
|
this.modifier_count = 0;
|
||||||
}
|
}
|
||||||
|
this.history_window.destroy ();
|
||||||
|
this.history_window = null;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -358,6 +363,9 @@ private class HistoryList : Midori.Extension {
|
||||||
activate.connect (activated);
|
activate.connect (activated);
|
||||||
deactivate.connect (deactivated);
|
deactivate.connect (deactivated);
|
||||||
}
|
}
|
||||||
|
construct {
|
||||||
|
this.escKeyval = Gdk.keyval_from_name ("Escape");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Midori.Extension extension_init () {
|
public Midori.Extension extension_init () {
|
||||||
|
|
Loading…
Reference in a new issue