Index: gc_lang/fr/oxt/Conjugueur/Conjugueur.py
==================================================================
--- gc_lang/fr/oxt/Conjugueur/Conjugueur.py
+++ gc_lang/fr/oxt/Conjugueur/Conjugueur.py
@@ -1,6 +1,5 @@
-# -*- coding: utf8 -*-
 # Conjugueur
 # by Olivier R.
 # License: GPL 3
 
 import unohelper
@@ -10,13 +9,14 @@
 import grammalecte.fr.conj as conj_fr
 import helpers
 
 from com.sun.star.task import XJobExecutor
 from com.sun.star.awt import XActionListener
+from com.sun.star.awt import XTopWindowListener
 
 
-class Conjugueur (unohelper.Base, XActionListener, XJobExecutor):
+class Conjugueur (unohelper.Base, XActionListener, XTopWindowListener, XJobExecutor):
     def __init__ (self, ctx):
         self.ctx = ctx
         self.xSvMgr = self.ctx.ServiceManager
         self.xContainer = None
         self.xDialog = None
@@ -212,11 +212,11 @@
         self.xDialog.PositionY = int((xWindowSize.Height / 2) - (self.xDialog.Height / 2))
 
         ## container
         self.xContainer = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialog', self.ctx)
         self.xContainer.setModel(self.xDialog)
-        self.xContainer.setVisible(False)
+        self.xContainer.setVisible(True)  # True for non modal dialog
 
         #self.xContainer.getControl('input').addEventListener(self)
         #self.xContainer.getControl('input').addEventCommand('New')
         self.xContainer.getControl('cbutton').addActionListener(self)
         self.xContainer.getControl('cbutton').setActionCommand('New')
@@ -228,34 +228,58 @@
         self.xContainer.getControl('oint').setActionCommand('Change')
         self.xContainer.getControl('otco').addActionListener(self)
         self.xContainer.getControl('otco').setActionCommand('Change')
         self.xContainer.getControl('ofem').addActionListener(self)
         self.xContainer.getControl('ofem').setActionCommand('Change')
+        self.xContainer.addTopWindowListener(self) # listener with XTopWindowListener methods
+        #self.xContainer.execute()  # Modal dialog
 
         ## set verb
         self.input.Text = sArgs  if sArgs  else "ĂȘtre"
         self._newVerb()
 
         ## mysterious action
         xToolkit = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.ExtToolkit', self.ctx)
         self.xContainer.createPeer(xToolkit, None)
-        self.xContainer.execute()
 
     # XActionListener
     def actionPerformed (self, xActionEvent):
         try:
             if xActionEvent.ActionCommand == 'Close':
-                self.xContainer.endExecute()
+                self.xContainer.dispose()           # Non modal dialog
+                #self.xContainer.endExecute()       # Modal dialog
             elif xActionEvent.ActionCommand == 'New':
                 self._newVerb()
             elif xActionEvent.ActionCommand == 'Change':
                 if self.oVerb:
                     self._displayResults()
             else:
                 print(str(xActionEvent))
         except:
             traceback.print_exc()
+
+    # XTopWindowListener (useful for non modal dialog only)
+    def windowOpened (self, xEvent):
+        return
+
+    def windowClosing (self, xEvent):
+        self.xContainer.dispose()           # Non modal dialog
+
+    def windowClosed (self, xEvent):
+        return
+
+    def windowMinimized (self, xEvent):
+        return
+
+    def windowNormalized (self, xEvent):
+        return
+
+    def windowActivated (self, xEvent):
+        return
+
+    def windowDeactivated (self, xEvent):
+        return
 
     # XJobExecutor
     def trigger (self, args):
         try:
             xDialog = Conjugueur(self.ctx)