##// END OF EJS Templates
Remove shimmodule IPython.config Deprecated since IPython 4.0...
Remove shimmodule IPython.config Deprecated since IPython 4.0 This should not be relied upon as this was deprecated Python 3.6 was not released yet.

File last commit:

r26736:c54a223b
r27211:2c1125bc
Show More
inputhookgtk4.py
43 lines | 1.2 KiB | text/x-python | PythonLexer
Elliott Sales de Andrade
Add input hooks for GTK4.
r26726 """
Enable Gtk4 to be used interactively by IPython.
"""
Matthias Bussonnier
reformat
r26736 # -----------------------------------------------------------------------------
Elliott Sales de Andrade
Add input hooks for GTK4.
r26726 # Copyright (c) 2021, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
Matthias Bussonnier
reformat
r26736 # -----------------------------------------------------------------------------
Elliott Sales de Andrade
Add input hooks for GTK4.
r26726
Matthias Bussonnier
reformat
r26736 # -----------------------------------------------------------------------------
Elliott Sales de Andrade
Add input hooks for GTK4.
r26726 # Imports
Matthias Bussonnier
reformat
r26736 # -----------------------------------------------------------------------------
Elliott Sales de Andrade
Add input hooks for GTK4.
r26726
import sys
from gi.repository import GLib
Matthias Bussonnier
reformat
r26736 # -----------------------------------------------------------------------------
Elliott Sales de Andrade
Add input hooks for GTK4.
r26726 # Code
Matthias Bussonnier
reformat
r26736 # -----------------------------------------------------------------------------
Elliott Sales de Andrade
Add input hooks for GTK4.
r26726
class _InputHook:
def __init__(self, context):
self._quit = False
GLib.io_add_watch(sys.stdin, GLib.PRIORITY_DEFAULT, GLib.IO_IN, self.quit)
def quit(self, *args, **kwargs):
self._quit = True
return False
def run(self):
context = GLib.MainContext.default()
while not self._quit:
context.iteration(True)
def inputhook_gtk4():
hook = _InputHook()
hook.run()
return 0